Providing enhanced live video

ABSTRACT

The present disclosure is directed toward systems and methods for providing an enhanced live video presentation to one or more viewers of a live video stream. In particular, the systems and methods described herein involve detecting a live video stream at an event and, based on received information about the event, generating a video enhancement overlay for the live video stream. In addition, the systems and methods involve providing, for display to one or more viewers, an enhanced live video presentation that includes the live video stream and the video enhancement overlay including information about the event. In this way, systems and methods described herein facilitate an enhanced user experience for broadcasters and viewers of live video content.

BACKGROUND

Video communication provides an increasingly popular method forconnecting via a social networking system. For example, where socialnetworking systems once limited users to communicate via writtenelectronic communications, users can now communicate electronically viaimages or videos taken from a personal computing device, such as a smartphone. Indeed, social networking systems now enable users to broadcastlive video streams as a method for communicating with other socialnetworking system co-users. To illustrate, a social networking systemuser can broadcast a live video stream, captured by a smartphone camera,to one or more social networking system co-users. The live video streamdepicts the broadcaster in a non-time-shifted display (e.g., a livedisplay).

Despite the ability to broadcast live video communications, broadcastinglive video is generally limited to broadcasting a plain video capture(e.g., the video broadcast includes only image content captured by acamera). For example, broadcasting live often involves broadcastingvideo content from a mobile computing device such as a smart phone,which are limited in processing power to provide editing or enhancementcapabilities for a broadcaster to enhance a broadcast of a live video.In particular, due to the limited computing resources on a smart phone,for example, conventional video editing systems are unable to provide avideo editing option that allows a smart phone to simultaneously capturevideo content, enhance the video content, and broadcast the enhancedvideo content without also overwhelming the computing resources of mostmobile devices, which would result in a poor quality broadcast.

Moreover, conventional video editing systems relate primarily toperforming video enhancements on a pre-recorded video file. For example,conventional video editing systems enable adding enhancements and otherspecial effects to a video that was previously captured and saved as adigital video file. In addition, conventional editing systems involvetime-consuming user review and previewing of the video to combineenhancements and edits to the video. As a result, conventional videoediting systems fail to provide broadcasters of a live video stream witheven an opportunity to enhance a live video since a live video isgenerated from a current feed from a camera, and not from a pre-captureddigital video file.

Due to the technical limitations and shortcomings of conventional videoediting systems, conventional video broadcasts often result in plainvideo that does little to engage viewers. Moreover, plain video oftenfails to provide relevant information to better understand context orcircumstances a video broadcast. Accordingly, and as a result of specialeffects and enhancements to TV and movies, plain video broadcasts oftenappear boring, unoriginal, an unengaging to most viewers. Accordingly,conventional systems for broadcasting live videos have a number ofdisadvantages.

SUMMARY

One or more embodiments described herein provide benefits and/or solveone or more of the foregoing or other problems in the art with systemsand methods for enhancing a live video stream. For example, in one ormore embodiments, the systems and methods detect an event (e.g., alocation of an event) associated with a live video stream originatingfrom a broadcasting device. Further, the systems and methods generate avideo enhancement overlay for the live video stream that includesdynamic information associated with the event. In addition, the systemsand methods involve providing, for display to one or more viewers, anenhanced live video presentation that includes both live video contentin conjunction with the video enhancement overlay.

Thus, in one or more embodiments, the systems and methods enhance a livevideo stream using dynamic information associated with the live videostream. In particular, in one or more embodiments, the systems andmethods gather or otherwise receive dynamic information associated withan event at which a broadcasting device captures the live video stream.The systems and methods identify a video overlay template for the eventincluding one or more fields corresponding to dynamic informationassociated with the event. Further, the systems and methods involvegenerating the video enhancement overlay including populating thefield(s) of the video overlay template with the dynamic information.Thus, the systems and methods enhance a presentation of the live videostream by providing, in conjunction with the live video stream, adisplay of the video enhancement overlay including the received dynamicinformation within the respective fields.

Additional features and advantages will be set forth in the descriptionwhich follows, and in part will be obvious from the description, or maybe learned by the practice of such exemplary embodiments. The featuresand advantages of such embodiments may be realized and obtained by meansof the instruments and combinations particularly pointed out in theappended claims. These and other features will become more fullyapparent from the following description and appended claims, or may belearned by the practice of such exemplary embodiments as set forthhereinafter.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above-recited systems andmethods provide various advantages and features, a more particulardescription will be rendered by reference to specific embodimentsthereof that are illustrated in the appended drawings. It should benoted that the figures are not drawn to scale, and that elements ofsimilar structure or function are generally represented by likereference numerals for illustrative purposes throughout the figures.Understanding that these drawings depict only typical embodiments andare not therefore to be considered to be limiting of its scope, variousembodiments will be described and explained with additional specificityand detail through the use of the accompanying drawings in which:

FIG. 1 illustrates a block diagram of an environment in which a videopresentation system is implemented in accordance with one or moreembodiments;

FIG. 2A-2B illustrate example graphical user interfaces for selecting avideo template overlay for a live video stream in accordance with one ormore embodiments;

FIGS. 3A-3D illustrate example graphical user interfaces including adisplay of a live video stream and a video enhancement overlay inaccordance with one or more embodiments;

FIGS. 4A-4B illustrate example graphical user interfaces includingenhanced live video presentations having customized graphics inaccordance with one or more embodiments;

FIGS. 5A-5B illustrate example graphical user interfaces includingenhanced live video presentations having customized animations inaccordance with one or more embodiments;

FIGS. 6A-6B illustrate example graphical user interfaces for creating anevent and generating a video enhancement overlay for the event inaccordance with one or more embodiments;

FIG. 7 illustrates a flow diagram of a method for providing an enhancedlive video presentation in accordance with one or more embodiments;

FIG. 8 illustrates a block diagram of an example computing device inaccordance with one or more embodiments;

FIG. 9 illustrates an example network environment of a social networkingsystem in accordance with one or more embodiments; and

FIG. 10 illustrates a social graph in accordance with one or moreembodiments.

DETAILED DESCRIPTION

One or more embodiments described herein include a video presentationsystem that allows a broadcaster to enhance and share a live videostream using a mobile computing device (e.g., a smart phone). Inparticular, the video presentation system enables a broadcaster tocapture a live video stream with the broadcasting device, select one ormore enhancements to provide in conjunction with the live video stream,and accordingly, create an enhanced live video presentation to provideto one or more viewer client devices. In particular, as will bedescribed in further detail below, the video presentation system gathersinformation associated with a live video stream and generates a videoenhancement overlay that includes information associated with the livevideo stream. Further, the video presentation system provides the livevideo stream and the video enhancement overlay as an enhanced live videopresentation to one or more viewer client devices. As used herein, an“enhanced live video presentation” refers to a digital mediapresentation including live video content (e.g., video content providedin conjunction with capturing the video content) displayed with one ormore enhancements to the live video content.

In one or more embodiments, the video presentation system enhances alive video stream using information associated with an event (or simply“event information”). As used herein, an “event” refers to an occurrenceor occasion associated with a location and/or time period. For example,an event can include a public event such as a sporting event, a concertevent, a political rally, a parade, or any public event. Additionally,an event can include a time period that corresponds to a public holiday,e.g., New Year's Eve, Thanksgiving, etc. Alternatively, an event mayrefer to a private event, such as a picnic, a hike, a bike ride, afamily dinner, a birthday party, or any other private occurrence. Thus,event information can refer to any information corresponding to aparticular event. Various examples of events and event information aredescribed in further detail below.

In one or more embodiments, the video presentation system gathers orotherwise receives event information from one or more sources, anddynamically provides the event information within a video enhancementoverlay associated with a live video stream. For example, in one or moreembodiments, the video presentation system receives event informationfrom a third party server device (e.g., a webserver that hostsinformation about sporting events). As another example, in one or moreembodiments, the video presentation system receives event informationfrom the broadcasting device (e.g., user input information about aprivate event). As a further example, in one or more embodiments, thevideo presentation system receives event information from multiplebroadcasting devices capturing live video at the same event.

Using the dynamic information associated with the event, the videopresentation system generates a video enhancement overlay includingevent information to display in conjunction with the live video stream.In particular, and as will be described in further detail below, thevideo presentation system identifies a video overlay template includingone or more fields that correspond to discrete portions of the eventinformation. The video presentation system dynamically populates the oneor more fields within the video overlay template with the eventinformation to create the video enhancement overlay. As a brief example,a video overlay template for a sporting event may include fieldsassociated with the score, and the event information may include thescore of the sporting event. Thus, the video presentation systemgenerates a video enhancement overlay that dynamically includes thescore of the sporting event, and provides the video enhancement overlayin conjunction with a live video stream of the sporting event.

As used herein, a “video overlay template” refers to a graphical objectincluding one or more fields for displaying information in conjunctionwith video content. For example, in one or more embodiments, a videooverlay template includes a framework of fields sized and positioned tooverlay at least a portion of a video display (e.g., a live video streamdisplay). In one or more embodiments, the video overlay templateincludes fields (e.g., blank fields) dedicated to discrete types ofinformation related to an event associated with the video content. As anillustrative example, a video overlay template for a sporting event mayinclude fields dedicated to scores, time duration (e.g., remainingtime), team or individual stats, scores of other teams in the sameleague or division, or other dynamic information that changes throughprogression of the sporting event.

As used herein, a “video enhancement overlay” refers to a video overlaytemplate in which one or more fields of the video overlay template havebeen populated with event information. For example, in one or moreembodiments, the video presentation system generates the videoenhancement overlay by populating fields of the identified video overlaytemplate with discrete portions of the event information and providesthe video enhancement overlay including the populated fields togetherwith the live video stream. Therefore, the video presentation systemprovides a presentation that includes both the live video stream from abroadcaster device and the video enhancement overlay to one or moreviewer devices.

In addition, and as will be described in further detail below, the videopresentation system enables a broadcaster to further customize thepresentation of the live video stream. For example, in one or moreembodiments, the video presentation system enables a broadcaster tocreate an event associated with the live video stream and generate avideo enhancement overlay for the event. As another example, in one ormore embodiments, the video presentation system provides customizedenhancements (e.g., graphical elements, animations) in conjunction withthe presentation of the live video stream to further improve the viewingexperience.

Furthermore, in one or more embodiments, the video presentation systemfacilitates display of event information in conjunction with a livevideo stream originating from a broadcasting device located at theevent. In particular, one or more embodiments, the video presentationsystem enables viewers of the live video stream to view supplementaland/or contextual information about the event to better understand andappreciate the content displayed within the live video stream. Moreover,providing the event information within the video enhancement overlayprovides dynamic information that changes as the event progresses, thusfurther improving the viewing experience for viewers of the live videostream.

The video presentation system further enhances the live video streamwithout utilizing substantial processing power of the broadcastingand/or viewing device(s). For example, the video presentation systemidentifies one or more video overlay templates and populates fields ofthe video overlay template(s) with the event information to generate thevideo enhancement overlay. Thus, rather than modifying the live videostream or otherwise enhancing the live video stream on the fly, thevideo presentation system generates the video enhancement overlay bypopulating fields of a video overlay template and providing an enhancedlive video presentation that includes both the live video stream and thevideo enhancement overlay.

As will be described in further detail below, in one or moreembodiments, the video presentation system provides the videoenhancement overlay by populating fields of a video overlay template andproviding the video enhancement overlay to a viewer client device fordisplay. In particular, a server device generates a video enhancementoverlay including event information and provides the video enhancementoverlay to the viewer client device. In addition, upon detecting thatevent information has changed, the video presentation system generates anew video enhancement overlay to provide to the viewer device or,alternatively, updates the video enhancement overlay by providing thenew event information to the viewer device to include within the videoenhancement overlay.

Alternatively, in one or more embodiments, rather than populating thevideo overlay template and providing the video enhancement overlay tothe viewer device, the video presentation system provides an indicatorof a template and event information to the viewer device to enable theviewer device to locally generate the video enhancement overlay on theviewer device. For example, where the viewer device has a live videoapplication thereon and locally stores various templates associated withevents (or particular types of events), the video presentation systemcan simply provide event information to the viewer device to enable theviewer device to generate the video enhancement overlay by populatingfields of a locally stored or otherwise accessible video overlaytemplate. In this way, the video presentation system provides andupdates the video enhancement overlay using very little bandwidth andwithout communicating large amounts of information (in addition togeneral event information) between a viewer device and one or moreserver devices of a social networking system.

In addition, the video presentation system facilitates enhancement of alive video presentation without requiring that a broadcaster engage intime-consuming editing after the video has been recorded and stored to acomputing device. Rather, the video presentation system generates thevideo enhancement overlay based on dynamic information associated withan event and simply modifies the presentation of the live video streamby providing the video enhancement overlay in conjunction with the livevideo stream. Thus, the video presentation system enhances apresentation of the live video stream while also avoiding the computerresource intensive and time intensive process of modifying videocontent. Moreover, the video presentation system enables the enhancementof a live video stream by removing the conventional steps of downloadingand/or storing video content prior to implementing the variousenhancements.

Additional detail will now be provided regarding an example environmentincluding the video presentation system implemented therein. Forexample, FIG. 1 illustrates a schematic diagram illustrating an examplelive video presentation environment 100 for performing the processes andfeatures described herein. As illustrated in FIG. 1, the videopresentation environment 100 includes broadcasting client devices 102a-n having a video presentation application 106 thereon, and viewerclient devices 104 a also having the video presentation application 106thereon. As further shown in FIG. 1, the video presentation environment100 includes server device(s) 108 including a communication system 110that further includes a video presentation system 112 implementedthereon. As used herein, the communication system 110 can include asocial networking system. Thus, as described herein, a “communicationsystem” may refer specifically to a social networking system asdescribed in further detail below in connection with FIGS. 9-10. Inaddition, in one or more embodiments, the video presentation environment100 includes third party server device(s) 114.

In one or more embodiments, the broadcasting client devices 102 a-n, theviewer client devices 104 a-n, the server device(s) 108, and the thirdparty server device(s) 114 communicate via a network 116, which mayinclude one or more networks and may use one or more communicationplatforms or technologies suitable for transmitting data and/orcommunication signals. In one or more embodiments, the network 116includes the Internet or World Wide Web. In addition, or as analternative, the network 116 can include various other types of networksthat use various communication technologies and protocols, such as acorporate intranet, a virtual private network (“VPN”), a local areanetwork (“LAN”), a wireless local network (“WLAN”), a cellular network,a wide area network (“WAN”), a metropolitan area network (“MAN”), or acombination of two or more such networks. Additional details relating tothe network 116 are explained below with reference to FIG. 9.

Although FIG. 1 illustrates a particular number and arrangement ofclient devices, in one or more embodiments, one or more of thebroadcasting client devices 102 a-n, viewer client devices 104 a-n,and/or the third party server 114 may directly communicate with thecommunication system or via an alternative communication network,bypassing the network 116. Further, in one or more embodiments, thevideo presentation environment 100 includes any number of broadcastingclient devices 102 a-n and viewer client devices 104 a-n as well asadditional client devices authorized to interact with one or more of thebroadcasting client devices 102 a-n.

In one or more embodiments, the broadcasting client devices 102 a-n andthe viewer client devices 104 a-n can refer various types of computingdevices. For example, one or more of the broadcasting client devices 102a-n and the viewer client devices 104 a-n may include a mobile devicesuch as a mobile telephone, a smartphone, a PDA, a tablet, or a laptop.Additionally, or alternatively, one or more of the broadcasting clientdevices 102 a-n and the viewer client devices 104 a-n may include anon-mobile device such as a desktop computer, a server, or another typeof computing device. It will be understood that a broadcasting clientdevice and a viewer client device can include the same type of computingfunctionality. In other words, in a preferred embodiment, both thebroadcasting client device and the one or more viewer client devices aremobile computing devices, such as smartphones.

A broadcasting client device refers to a client device from where a livevideo stream originates, while the viewer client device refers to aclient device that presents a live video stream for a user to view. Inat least one embodiment, the user of a broadcasting client device (e.g.,a broadcaster or broadcasting user) and the user of a viewer clientdevice (e.g., a viewer or viewing user) include associated co-users(e.g., “friends”) of the communication system. Additional details withrespect to the broadcasting client devices 102 a-n and the viewer clientdevices 104 a-n are discussed below with respect to FIG. 8.

As further illustrated in FIG. 1, the broadcasting client devices 102a-n and the viewer client devices 104 a-n can include the videopresentation application 106. In general, the video presentationapplication 106 provides and controls various features and functionalityon the broadcasting client devices 102 a-n to enable the broadcastingclient devices 102 a-n to capture and provide a live video stream withinan enhanced live video presentation. On the other hand, the videopresentation application 106 provides and controls various features andfunctionality on the viewer client devices 104 a-n to enable the viewerclient devices 104 a-n to present an enhanced live video presentation.In one or more embodiments, the video presentation application 106 is anative application specific to the video presentation system 112. Inother embodiments, for example, the video presentation application 106may be a web browser used to access the video presentation system 112.

As will be described in additional detail herein, the video presentationapplication 106 can cause a client device (e.g., broadcasting clientdevice or viewer client device) to display one or more GUIs having oneor more display elements (e.g., graphical elements). The videopresentation application 106 enables a user (e.g., a broadcaster or aviewer) to interact with the display elements within the one or moreGUIs for a variety of purposes related to producing and viewing anenhanced live video presentation. FIGS. 2A-6B and the description thatfollows illustrate various example embodiments of the GUIs that showvarious features of the video presentation system 112.

As mentioned above, the video presentation system 112 enables abroadcaster to initiate a live video stream from a first broadcastingdevice 102 a to be viewed by one or more viewers via a display of one ormore viewer client devices 104 a-n. As used herein, the term“broadcaster” refers to a user that operates a client device to captureand initiate a live video presentation to provide to one or more viewerusers. Also as used herein, the term “viewer” refers to a user of aclient device who views a live video stream (e.g., an enhanced livevideo presentation). In one or more embodiments, the broadcaster and theviewer are users of the communication system.

To provide an enhanced live video presentation to viewers, a broadcasterinitiates a live video stream by capturing video content using a firstbroadcasting client device 102 a. As the first broadcasting clientdevice 102 a captures live video content, the first broadcasting clientdevice 102 a provides the live video content to the server device 108 tobe provided to any number of viewers via the viewer client devices 104a-n. In particular, in one or more embodiments, the broadcasting clientdevice 102 a streams or otherwise continuously provides portions of thelive video content to the server device 108. While the server device 108receives the video content, the server device 108 can stream the livevideo content to the viewer client device(s) 104 a-n via a live videostream. Thus, the first broadcasting client device 102 a can provide alive video stream to any number of viewer client devices 104 a-n via theserver device 108.

Concurrent with capturing and providing the live video stream, the videopresentation system 112 receives event information associated with thelive video stream. More specifically, in one or more embodiments, thevideo presentation system 112 receives dynamic information associatedwith a location and/or time at which the first broadcasting clientdevice 102 a captures the live video content. As will be described infurther detail below, the video presentation system 112 receives theevent information from various sources. For example, as shown in FIG. 1,the video presentation system 112 can receive event information from oneor multiple broadcasting client devices 102 a-n capturing live videocontent while at the location of the event. In addition, the videopresentation system 112 can receive event information from a third partyserver device 114. Moreover, in one or more embodiments, the videopresentation system 112 accesses event information available within thecommunication system.

As mentioned above, and as will be described in further detail below,upon obtaining event information, the video presentation system 112generates an enhanced live video presentation by generating a videoenhancement overlay for display in conjunction with a live video streamdisplay. In particular, in one or more embodiments, the videopresentation system 112 identifies a video overlay template thatincludes one or more fields corresponding to portions of the eventinformation. Based on the identified video overlay template, the videopresentation system 112 generates a video enhancement overlay for thelive video stream by populating the fields of the video overlaytemplate.

Using the video enhancement overlay, the video presentation system 112causes the server device to provide an enhanced presentation of the livevideo stream to any number of viewer client devices 104 a-n. Forexample, in one or more embodiments, the video presentation system 112causes the server device 108 to provide the video enhancement overlay tothe viewer devices 104 a-n to be displayed on the viewer client devices104 a-n in conjunction with the live video stream.

Alternatively, in one or more embodiments, the video presentation system112 provides the event information (or discrete portions of the eventinformation) as well as an identification of a video overlay template toenable the viewer client devices 104 a-n to generate a presentation ofthe live video stream that includes both the live video stream and thevideo enhancement overlay. For example, in one or more embodiments, thevarious client devices (e.g., broadcasting client devices 102 a-n andviewer client devices 104 a-n) include or otherwise have access to adatabase of video overlay templates. In one or more embodiments, thevideo presentation system 112 provides an identifier of a templatestored on a respective client device to enable the video presentationapplication 106 to identify a video overlay template and populate fieldsof the identified video overlay template with received eventinformation. In particular, in one or more embodiments, the videopresentation application 106 receives event information and locallygenerates the video enhancement overlay using a locally accessed videooverlay template and based on event information received from the serverdevice 108.

In addition, in one or more embodiments, the video presentation system112 provides event information to the viewer client devices 104 a-n asthe event information changes to enable the viewer client devices 104a-n to update the video enhancement overlay. For example, in one or moreembodiments, upon detecting a change in one or more discrete portions ofthe event information, the video presentation system 112 provides theupdated event information to the viewer client devices 104 a-n to enablethe video presentation applications 106 to update the video enhancementoverlays to include the updated event information. In one or moreembodiments, the video presentation system 112 provides an update thatincludes all of the event information (including the changed eventinformation). Alternatively, in one or more embodiments, the videopresentation system 112 only provides any event information that haschanged.

In addition, while one or more embodiments described herein relatespecifically to providing an enhanced live video presentation fordisplay on viewer client devices 104 a-n, the video presentation system112 can similarly communicate information over the network 116 to enablethe first broadcasting device 102 a (and one or more additionalbroadcasting devices 102 a-n) to display the video enhancement overlayin conjunction with the live video stream. For example, in one or moreembodiments, the video presentation system 112 enables the firstbroadcasting device 102 a to display the video enhancement overlay inconjunction with the live video stream as the live video stream iscaptured and displayed on the first broadcasting device 102 a. Thus, inone or more embodiments, the enhanced live video presentation appears onthe first broadcasting client device 102 a similar to how thepresentation appears on the viewer client devices 104 a-n.

Moreover, while one or more embodiments described herein includeproviding an enhanced live video presentation by providing the videoenhancement overlay including a populated video overlay template to thebroadcasting client device 102 a and the viewer client devices 104 a-n,in one or more embodiments, the video presentation system 112 providesthe video enhancement overlay to the broadcasting client device 102 aand viewer client devices 104 a-n by providing information to therespective client devices 102 a, 104 a-n to enable the client devices102 a, 104 a-n to generate and provide a display of the enhanced livevideo presentation. For example, as mentioned above, in one or moreembodiments, the video presentation system 112 simply provides eventinformation and an identification of a video overlay template to enablethe client devices 102 a, 104 a-n to locally access a video overlaytemplate and enhance a live video stream by displaying, in conjunctionwith the live video stream, a populated video overlay template includingthe live event information.

Moving onto FIGS. 2A-6B, additional features will be described withregard to example user interfaces that illustrate features andfunctionality of the video presentation system 112. For example, asshown in FIGS. 2A-6B, a mobile client device 202 including a touchscreen display 204 provides a graphical user interface 206 (or simply“GUI 206”) that includes a presentation of a live video stream. Inparticular, each of FIGS. 2A-6B illustrate a presentation of the livevideo stream as it appears on either a broadcasting client device or aviewer client device. Thus, unless specifically indicated otherwise,features and functionality described in connection with a presentationof a live video stream displayed by the mobile client device 202 canapply similarly to providing a presentation of a live video stream oneither a broadcasting client device or a viewer client device.

As shown in FIG. 2A, the GUI 206 includes a live video stream display208 including live video content captured by a broadcasting clientdevice. For example, in one or more embodiments, the GUI 206 includesthe live video stream display 208 including live video content capturedby a camera of the mobile client device 202 (or if the mobile clientdevice 202 is a viewer client device, the live video stream displayincludes video content captured by a camera of another mobile device).As further shown in FIG. 2A, the GUI 206 includes various indicatorsprovided in conjunction with the live video stream display 208. Forexample, as shown in FIG. 2A, the GUI 206 includes a live indicator 210that indicates to a user of the mobile client device 202 that the videopresentation system 112 has made the live video stream available to oneor more users of the communication system. In addition, as shown in FIG.2A, the GUI 206 includes a viewer indicator 212, which informs the userof the mobile device 202 (the broadcaster and/or viewer) about a numberof viewer client devices currently receiving the live video stream.

As shown in FIG. 2A, the GUI 206 further includes a live toolbar 214including selectable options for enhancing or otherwise modifying apresentation of the live video stream display 208. For example, as shownin FIG. 2A, the live toolbar 214 includes a filter control 216, adrawing control 218, and an overlay control 220. In particular, thefilter control 216 facilitates applying one or more filters to the livevideo stream display 208. Further, the drawing control 218 enables abroadcaster to manually draw or doodle over a portion of the live videostream display 208. In addition, and as will be described in furtherdetail herein, the overlay control 220 facilitates providing a videoenhancement overlay in conjunction with the live video stream display208. In one or more embodiments, the live toolbar 214 includes othercontrols that enable a broadcaster to interact with the GUI 206 andcause the video presentation system 112 to modify the presentation ofthe live video stream display 208 as it appears on broadcasting and/orviewer client devices.

As further shown in FIG. 2, the GUI 206 includes a plurality of eventindicators 222 a-b and a create event indicator 223. In one or moreembodiments, the mobile client device 202 provides the event indicators222 a-b and the create event indicator 223 upon detecting a userselection of the overlay control 220. In particular, in the case thatthe mobile client device 202 refers to a broadcasting client device, thevideo presentation system 112 causes the mobile client device 202 todisplay the event indicators 222 a-b and the create event indicatorbased on a location of the mobile client device 202 capturing the livevideo content.

Each of the event indicators 222 a-b correspond to respective events(e.g., previously created events) associated with a location of themobile client device 202 and/or a time at which the mobile client device202 captures the live video stream. For example, the first eventindicator 222 a refers to a National Basketball Association (NBA) gamebetween the Golden State Warriors (herein after “Warriors”) and theOklahoma City Thunder (herein after “Thunder”) taking place at asporting arena in Oklahoma City, Okla. As another example, the secondevent indicator 222 b refers to an Election Day party taking place atone or more locations within the country of the user of the mobileclient device 202.

In one or more embodiments, the listing or presentation of the eventindicators 222 a-c includes a list of event indicators in accordancewith a ranking of events. For example, in one or more embodiments, thevideo presentation system 112 ranks events based on a number ofbroadcasting client devices capturing live video content at locations ofthe events. In one or more embodiments, the video presentation system112 ranks the events based on a combination of location relative to themobile client device 202 and a number of broadcasting client devicescapturing live video while at the events.

In one or more embodiments, the video presentation system 112 providesone or more of the event indicators 222 a-b for previously createdevents based on previously receiving a request to create the events. Forexample, with regard to the NBA game event, the video presentationsystem 112 may create the NBA game event based on receiving a requestfrom any broadcaster at the NBA game that is capturing live videocontent while at the NBA game and within a time window associated with aduration of the NBA game.

Alternatively, in one or more embodiments, the video presentation system112 creates the event of the NBA game based on receiving a request froma user of another entity to create the event of the NBA game event(e.g., without requiring that the user broadcast live video contentwhile at the event). For example, the NBA or other organization maycoordinate with the communication system to facilitate creation of theNBA game event that enables any broadcasting client device to associatea live video stream with the NBA game event.

As an alternative to receiving a user request to create the NBA gameevent, in one or more embodiments, the video presentation system 112creates the NBA game event (or any other event) based on a detectednumber of live video streams originating from broadcasting clientdevices located at the event. As an example, upon detecting apredetermined number of live video streams broadcasting from the samelocation, the video presentation system 112 can create an event for thelocation and enable broadcasters of the predetermined number of livevideo streams and any subsequent broadcasters to associate the livevideo streams with the created event.

In addition, in some embodiments, upon detecting a location of a livevideo stream, the video presentation system 112 can search for an eventassociated with the location of the live video stream. For example, inone or more embodiments, the video presentation system 112 identifiesany number of created events having a location within a predeterminedradius of the location of the live video stream. In one or moreembodiments, the video presentation system 112 identifies only publicevents (e.g., created events designated as public) within a particularradius of the location of the live video stream.

In one or more embodiments, the video presentation system 112 gathersinformation about the time and/or location to determine the type ofevent (e.g., NBA game, election party) from various sources. Forexample, the video presentation system 112 can receive information aboutthe created event from users of the communication system, a third partyserver device 114, any of the broadcasters at the event, or othersource(s). For example, a third party server device 114 may provide alist of events associated with event types to the video presentationsystem 112, and in response, the video presentation system 112 cangenerate an event associated with a particular time and location toprovide to a broadcasting client device upon detecting a live videostream originating from the broadcasting client device at the locationand during the time associated with the event.

As shown in FIG. 2A, the first event indicator 222 a associated with theNBA game refers to an event at a specific time (e.g., within a specifictime window) and a specific location (e.g., within a defined radius ofthe mobile client device 202 a). Further, while the second eventindicator 222 b may similarly refer to an event associated with a timeand a defined location, in one or more embodiments, the videopresentation system 112 can create one or more events unrestricted (orless restricted) by time and/or location.

For example, where an election party event associated with the secondevent indicator 222 b has a potential interest of broadcasters frommultiple locations, the video presentation system 112 can create one ormore events having a specific time while also having a broad locationrange (e.g., rather than a location-specific event such as an NBA game).For example, the election party event may include a specific time windowcorresponding to a date of an election, however, the election partyevent does not include a specific location. Thus, as shown in FIG. 2A,the second event indicator 222 b may refer to an election party eventhaving no location boundary (e.g., including any users of thecommunication system) or simply having a large location boundary (e.g.,anywhere within the United States). In this way, broadcasters canparticipate in the same election party event at locations across thecountry.

In addition to creating an event that is associated with a specific timeand an unrestricted location, the video presentation system 112 cancreate an event associated with an unrestricted time and a specificlocation. For example, an event can be associated with a location of OldFaithful Geyser in Yellowstone National Park, but the event can have anunrestricted time definition. Thus, upon detecting a live video streamoriginating from a location associated with Old Faithful Geyser, thevideo presentation system 112 can provide the broadcasting client device202 an event indicator associated with Old Faithful Geyser.

While not shown in FIG. 2A, in one or more embodiments, the videopresentation system 112 enables a user of the mobile client device 202to search for one or more events. For example, the video presentationsystem 112 can enable a user of the mobile client device 202 to searchevents by location, name, or other criteria in an effort to join apreviously created event that the video presentation system 112 may nototherwise automatically detect and provide via the GUI 206 of the mobileclient device 202.

As mentioned above, and as shown in FIG. 2A, the GUI 206 furtherincludes a create event indicator 223 that enables the user of themobile client device 202 to create a new event associated with the livevideo content captured by the mobile client device 202. In particular,upon detecting a selection of the create event indicator 223, the videopresentation system 112 creates a new event for the live video streamdisplayed by the mobile client device 202. The user can further selectone or more options to modify the name or details associated with thenew event via options provided by the mobile client device 202.Additional details with regard to creating an event in response todetecting a user selection of the create event indicator 223 aredescribed in further detail in connection with FIGS. 6A-6B below.

In response to a user of the mobile client device 202 selecting thefirst event indicator 222 a associated with the NBA game, the videopresentation system 112 provides one or more template indicators. Atemplate indicator is a selectable graphical element that providesinformation about one or more characteristics of a video overlaytemplate. For example, as shown in FIG. 2B, the GUI 206 includes aplurality of template indicators 224 a-d corresponding to video overlaytemplates that the video presentation system 112 may use to generate avideo enhancement overlay that enhances a presentation of the live videostream display 208. In one or more embodiments, the video presentationsystem 112 enables a user of the mobile client device 202 to select oneof the template indicators 224 a-d to use for generating the videoenhancement overlay to display in conjunction with the live video streamdisplay 208.

As mentioned above, the video presentation system 112 gathers orotherwise receives event information. For example, in response todetecting a selection of the first event indicator 222 a associated withthe NBA game, the video presentation system 112 can gather informationabout the NBA game to include within fields of a corresponding videooverlay template. For example, as mentioned above, the videopresentation system 112 can gather discrete portions of the eventinformation including, for example, a current score, a current period(e.g., fourth quarter), a duration of time (e.g., time left in thequarter, time left in the event), or any other dynamic informationassociated with the identified event. As will be described in furtherdetail below, the video presentation system 112 can include the receivedevent information within respective fields of a video overlay templateto generate a video enhancement overlay.

As shown in FIG. 2B, each of the template indicators 224 a-d includefield icons 225 that illustrate an appearance of a corresponding videoenhancement overlay (e.g., a video overlay template including populatedfields). Although the reference numeral 225 of FIG. 2B indicates examplefield icons with specific respect to template indicators 224 b and 224c, it is appreciated that the icons included within each of the templateindicators 224 a-d represent various types of field icons. Inparticular, as will be described in further detail below with regard toFIGS. 3A-3D, each of the field icons 225 correspond to respective fieldsof video overlay templates that correspond to the displayed templateindicators 224 a-d. For example, as will be described below inconnection with FIGS. 3A-3D, the first template indicator 224 acorresponds to a video overlay template used to construct the firstvideo enhancement overlay 301 a shown in FIG. 3A. The second templateindicator 224 b corresponds to a video overlay template used toconstruct the second video enhancement overlay 301 b shown in FIG. 3B.The third template indicator 224 c corresponds to a video overlaytemplate used to construct the third video enhancement overlay 301 cshown in FIG. 3C. The fourth template indicator 224 d corresponds to avideo overlay template used to construct the fourth video enhancementoverlay 301 d shown in FIG. 3D.

Moving onto FIGS. 3A-3D, FIG. 3A illustrates an example videoenhancement overlay constructed from a video overlay templatecorresponding to the first template indicator 224 a (FIG. 2B). Inparticular, FIG. 3A illustrates a first enhancement overlay 301 aincluding fields dedicated to scores of the teams and a current periodof the selected event (the NBA basketball game). For example, as shownin FIG. 3A, a first score field 302 a corresponds to a score of avisiting team (Warriors) while a second score field 304 a corresponds toa score of a home team (Thunder). As further shown, the firstenhancement overlay 301 a includes a quarter field 306 a correspondingto a current period (4^(th) quarter) of the sporting event.

FIG. 3B illustrates another example video enhancement overlayconstructed from a video overlay template corresponding to the secondtemplate indicator 224 b. In particular, FIG. 3B illustrates a secondenhancement overlay 301 b including fields dedicated to scores of theteams and a current period of the selected event. For example, as shownin FIG. 3B, the first score field 302 b corresponds to the score of thevisiting team while the second score field 304 b corresponds to thescore of the home team. Similar to FIG. 3A, the second enhancementoverlay 301 b further includes a quarter field 306 b indicating that theevent has progressed to the fourth quarter of the basketball game.

FIG. 3C illustrates another example video enhancement overlayconstructed from a video overlay template corresponding to the thirdtemplate indicator 224 c. In particular, FIG. 3C illustrates a thirdenhancement overlay 301 c including fields dedicated to scores of theteams. For example, similar to FIGS. 3A and 3B, the third enhancementoverlay 301 c includes a first score field 302 c corresponding to thescore of the visiting team while the second score field 304 ccorresponds to the score of the home team. In contrast to the first andsecond enhancement overlays 301 a-b, however, the third enhancementoverlay 301 c does not include a field dedicated to the current periodor quarter of the event.

FIG. 3D illustrates another example video enhancement overlayconstructed from a video overlay template corresponding to the fourthtemplate indicator 224 d. In particular, FIG. 3D illustrates a fourthenhancement overlay 301 d including fields dedicated to scores of theteams, a current quarter of the event, and a duration of time left inthe quarter (or time remaining in the event). For example, similar toFIGS. 3A-3C, the fourth enhancement overlay 301 d includes a first scorefield 302 d corresponding to the score of the visiting team while thesecond score field 304 d corresponds to the score of the home team. Inaddition, and in contrast to FIGS. 3A-3C, the fourth enhancement overlay301 d includes a quarter field 306 d indicating a current quarter of theevent and a duration field 308 d indicating a period of time left in thecurrent quarter of the event.

Further, as shown in FIG. 3D, the fourth enhancement overlay 301 dincludes a dynamic scrolling element including additional eventinformation. In particular, as shown in FIG. 3D, the fourth enhancementoverlay 301 d includes a scrolling stat bar that includes statistics ofindividual players of the basketball game. In one or more embodiments,the scrolling stat bar includes statistics of those identified asstatistical leaders of the event, statistics of any players activelyparticipating in the event (e.g., players on the court), or any of theplayers in the game. In one or more embodiments, the scrolling stat barincludes information about other related events (e.g., other games fromother NBA games happening at the same time).

In one or more embodiments, the video presentation system 112 generatesone of the video enhancement overlays 301 a-d in response to detecting aselection of the corresponding template indicator 224 a-d. Inparticular, in response to detecting the selection of a templateindicator, the video presentation system 112 identifies a correspondingvideo overlay template and generates the video enhancement overlay bypopulating the fields of the identified video overlay template withdiscrete portions of event information. Upon generating the videoenhancement overlay, the video presentation system 112 provides thevideo enhancement overlay to be displayed in connection with the livevideo stream display 208 via the mobile client device 202.

In one or more embodiments, the video presentation system 112 updatesthe video enhancement overlay based on changing or otherwise dynamicevent information. In particular, upon detecting a change in eventinformation corresponding to one of the fields, the video presentationsystem 112 can update the event information currently displayed withinthe video enhancement overlay. In one or more embodiments, the videopresentation system 112 updates the event information by generating anupdated video enhancement overlay that replaces the currently displayedvideo enhancement overlay on the mobile client device 202.Alternatively, in one or more embodiments, the video presentation system112 provides the updated event information to the mobile client device202 to enable the mobile client device 202 (e.g., via the videopresentation application 106) to update the displayed event informationwithin the same video enhancement overlay.

For example, if a team scores one or more points, the video presentationsystem 112 provides an updated score for one or both of the teams. Asanother example, the video presentation system 112 can provide counteror timing information associated with the current period (e.g., quarter)or duration of time left in the sporting event. In one or moreembodiments, the video presentation system 112 provides the updatedinformation within each of the respective dedicated fields of the videoenhancement overlay.

In one or more embodiments, the video presentation system 112synchronizes content displayed via the video enhancement overlay andevent information. For example, where a delay exists between capturingthe live video stream and providing a display of the live video streamto viewers, in one or more embodiments, the video presentation system112 may prevent display of the event information prior to a viewerseeing the live video content. In one or more embodiments, the videopresentation system 112 synchronizes the displayed video content withthe event information by tracking timestamp data associated with thelive video stream and received event information. The video presentationsystem 112 may prevent sending event information having an earliertimestamp than captured video content until after the captured videocontent has been delivered to the viewer client devices 104 a-n. In thisway, the video presentation system 112 prevents updating informationdisplayed within the video enhancement overlay prior to deliveringcorresponding live video content.

In one or more embodiments, the presentation of the live video streamdisplay 208 and the video enhancement overlay includes the displayedevent information at a fixed position over a portion of the live videostream. For example, any broadcaster or viewer of the live video streamwill see the event information displayed over a portion of the livevideo stream display 208. Alternatively, in one or more embodiments, thevideo presentation system 112 causes some or all of the eventinformation to be displayed at defined intervals or upon detecting achange in one or more portions of the event information. For example,upon detecting a change in the score, the video presentation system 112can cause the mobile client device 202 to provide a display of themodified score for a short period of time and then cause the mobileclient device 202 remove the score to provide an unobstructed view ofthe live video stream display 208. Thus, in one or more embodiments, thevideo enhancement overlay may include fields that appear and disappearas event information associated with the respective fields changes.

In addition, in one or more embodiments, the video presentation system112 enables a broadcaster or viewer to modify the video enhancementoverlay on a respective client device (or across all viewer clientdevices). For example, in one or more embodiments, the broadcaster canselect or indicate a specific field to be added or removed from thevideo enhancement overlay. For instance, the broadcaster can select anoption to remove the quarter field from the video enhancement overlayfor all viewer devices. As an alternative, in one or more embodiments,the viewer can select an option to remove or add a specific field fromthe video enhancement overlay for the respective viewer client device.In response, the video presentation system 112 can provide a modifiedpresentation specific to the viewer client device.

Furthermore, in one or more embodiments, the video presentation system112 enables the broadcaster and/or viewer to scroll through the videoenhancement overlays. For example, referring to FIGS. 3A-3D, thebroadcaster can select a display option or perform a touch gesture(e.g., swiping touch gesture) to scroll through the different videoenhancement overlays shown in FIGS. 3A-3D. In response to detecting aswitch between different video enhancement overlays, the videopresentation system 112 can modify the video enhancement overlayprovided to each viewer client device. In one or more embodiments, thevideo presentation system 112 immediately modifies the presentation ofthe live video stream to reflect a real-time display of the broadcastingclient device. Alternatively, to avoid disrupting the presentation ofthe live video stream to all the viewer client devices, the videopresentation system 112 can modify the presentation of the live videostream upon determining that the broadcasting device has settled on aspecific video enhancement overlay for a defined period of time (e.g.,10 seconds).

As mentioned above, in one or more embodiments, the video presentationsystem 112 receives the event information from a variety of sources. Forexample, in one or more embodiments, the video presentation system 112receives information about the NBA game from a third party server 114.For instance, the video presentation system 112 can periodically look upthe score, time, and other information associated with the NBA game froma website or other source on the third party server 114. In addition oras an alternative, the video presentation system 112 can receiveinformation from one or more broadcasting client devices or viainformation about the event accessible via the communication system.

Moving onto FIGS. 4A-4B, FIG. 4A shows a mobile client device 202including a touchscreen display 204, GUI 206, and live video streamdisplay 208 similar to the example shown in FIG. 2A. As further shown,the GUI 206 includes a presentation of the live video stream thatincludes both the live video stream display 208 and a video enhancementoverlay including similar fields 302 a-306 a described above inconnection with FIG. 3A. As further shown, the GUI 206 includes a viewertoolbar 401 including one or more selectable options that enable aviewer (or broadcaster) to perform one or more actions (e.g., modifydisplay, invite user, add comment, leave live video stream) with respectto the live video stream.

As further shown in FIG. 4A, the video enhancement overlay includes afirst customized graphic 402 including text that reads “Go Warriors!”Alternatively, the video enhancement overlay can include a secondcustomized graphic 404 including text that reads “Go Thunder!” Inparticular, in one or more embodiments, the video presentation system112 includes a customized element within the video enhancement overlaybased on a preference of the user of the mobile client device 202. Forexample, the video presentation system 112 can determine that the userof the mobile device 202 is a Warriors or a Thunder fan and provide thefirst customized graphic 402 or the second customized graphic 404 basedon the determination about the user of the mobile device 202. As analternative to providing a specific graphic, in one or more embodiments,the video presentation system 112 modifies a color of the enhanced livevideo presentation to reflect a particular theme (e.g., to includecolors of one of the teams).

For example, in one or more embodiments, the video presentation system112 determines or otherwise identifies information associated with theuser of the mobile client device 202. Upon identifying the informationabout the user, the video presentation system 112 identifies a graphiccorresponding to the information about the user (e.g., a favorablepreference toward a sports team) and presents the graphic within a fieldof the video overlay template assigned to or otherwise designated as afield for displaying the identified graphic. As an alternative to theidentified graphic, in one or more embodiments, the video presentationsystem 112 includes a portion of the information about the user of themobile client device 202 within the field of the video overlay templatewhen generating the video enhancement overlay. Thus, the enhanced livevideo presentation including both the live video stream display 208 andthe video enhancement overlay can include both event information as wellas a graphic or other information specific to the broadcaster (e.g., theuser of the mobile client device 202).

The video presentation system 112 can receive or otherwise access theinformation about the user of the mobile client device from one or moresources. As an example, in one or more embodiments, the videopresentation system 112 retrieves information about the user via thecommunication system. For example, where the broadcaster streams thelive video content via a video presentation application 106, the videopresentation system 112 can simply access profile information about thebroadcaster to identify one or more preferences, ratings, likes, orother data about the broadcaster to include within a field of the videooverlay template. For example, if a user has “liked” the Warriors via asocial networking profile, the video presentation system 112 can causethe first customized graphic 402 to display within the video enhancementoverlay. Alternatively, if the user has “liked” the Thunder via a socialnetworking profile, the video presentation system 112 can cause thesecond customized graphic 404 to display within the video enhancementoverlay. In one or more embodiments, the video presentation system 112enables a broadcaster to select information or explicitly identify acustomized graphic to display within the video enhancement overlay.

Moving onto FIGS. 5A-5B, the presentation of the live video stream canfurther include one or more animations associated with the event. Forexample, FIG. 5A illustrates a first animation 502 to indicate that theevent has finished and that the Thunder won the basketball game. Inparticular, as shown in FIG. 5A, the video enhancement overlay includesan animation that includes streamers and text that reads “Thunder Win!”over a portion of the live video stream display 208. In addition, asshown in FIG. 5B, the enhanced live video presentation includes a secondanimation 504. For example, as shown in FIG. 5B, the second animationincludes a fire animation around the second score field 304 a.

In one or more embodiments, the video presentation system 112 generatesthe animation based on detecting a trigger condition associated with theevent. For example, as shown in FIG. 5A, the video presentation system112 causes the mobile client device 202 to display the first animation502 upon determining that the basketball game has finished. In one ormore embodiments, the video presentation system 112 generates the firstanimation 502 based on event information received from the third partyserver 114 indicating that the event has finished (e.g., the sameinformation used when updating the fields 302 a-306 a described above inconnection with FIGS. 3A-3D).

As an alternative to generating the first animation 502 based onreceived data from the third party server 114, the video presentationsystem 112 can generate the first animation 502 based on eventinformation received via the communication system. For example, thevideo presentation system 112 may determine that the game finished andthat the Thunder won the game based on comments made to the live videostream. Alternatively, in one or more embodiments, the videopresentation system 112 determines that the game finished and that theThunder won the game based on comments made generally to newsfeedsand/or user profiles on the communication system. In one or moreembodiments, the video presentation system 112 generates the animationonly if the video presentation system 112 identifies the broadcaster (ora respective viewer) as a fan of the winning team. Alternatively, thevideo presentation system 112 may provide a different animation based oninformation associated with the broadcaster and/or viewers.

As another example of modifying the enhanced live video presentationbased on a detected trigger condition, with regard to FIG. 5B, the videopresentation system 112 can receive information from the third partyserver device 114 that indicates the Thunder lead the Warriors by athreshold score (e.g., 20 points). In response, the video presentationsystem 112 generates the second animation and causes the mobile clientdevice 202 to display the animation around the second score field 304 a,as shown in FIG. 5B. The video presentation system 112 can display thesimilar animation under different trigger conditions. For example, thevideo presentation system 112 may generate and provide the secondanimation 504 for display upon detecting a number of points scored in arow for a specific team, detecting a total number of points scored for ateam, detecting a successful three-point attempt, or a combination ofmultiple conditions associated with the event.

As another example, the video presentation system 112 generates oridentifies the animation based on identifying a trigger condition fromdata received from multiple broadcasting devices capturing live videocontent while at the event. For example, while capturing the live videocontent, the mobile client device 202 can capture noise data, motiondata, and other types of data via one or more sensors onboard the mobileclient device 202. In one or more embodiments, the video presentationsystem 112 receives noise data, motion data, temperature data, or othertypes of data and generates the animation based on one or a combinationof the data captured by the multiple broadcasting client devices. As anexample, where multiple broadcasting client devices detect an elevatedlevel of noise and/or motion data indicating a high level of excitementfor the Thunder, the video presentation system 112 may update orotherwise modify the video enhancement overlay to include the secondanimation 504.

As mentioned above, as an alternative to joining a previously createdevent or otherwise associating a live video stream with a previouslycreated event, the video presentation system 112 enables a user of themobile client device 202 to generate a user event and associate the userevent with a live video stream. For example, as described above inconnection with FIG. 2A, the GUI 206 includes a create event indicator223. Upon detecting a selection of the create event indicator, the videopresentation system 112 can cause the mobile client device 202 toprovide the GUI 206 shown in FIG. 6A.

In particular, as shown in FIG. 6A, the GUI 206 includes a live videostream display 208 including video content captured by the mobile clientdevice 202 while the user of the mobile client device 202 takes a bikeride. As shown in FIG. 6A, the GUI 206 further includes templateindicators 602, 604 corresponding to video overlay templates for thecreated user event. Similar to the template indicators 224 a-d, thetemplate indicators 602, 604 for the user event provide a visualizationfor how the video enhancement overlay will appear. In particular, eachof the template indicators 602, 604 correspond to a respective videooverlay template. In addition, as shown in FIG. 6A, the templateindicators 602, 604 include one or more field icons 605 that indicatewhere different fields of the video overlay templates will appear withinthe enhanced live video presentation.

As shown in FIG. 6A, the user event refers to a bike ride of the user ofthe mobile client device 202. In one or more embodiments, the videopresentation system 112 creates the “bike ride” user event based onreceived input from the user of the mobile client device 202 uponselecting the create event indicator 223 of FIG. 2A. For example, thevideo presentation system 112 can select one of a listing of commonevents such as, for example, a bike ride, a run, a hike, a picnic, aparty, a sporting event, a rally, or any other event that a user of themobile client device 202 may want to live stream.

Upon detecting a user selection of a type of event, the videopresentation system 112 causes the mobile client device 202 to presentone or more template indicators associated with video overlay templatesthat the video presentation system 112 may use for the selected type ofevent. As an example, upon detecting a user selection of a “bike ride”user event, the video presentation system 112 provides the templateindicators 602, 604 shown in FIG. 6A. Further, in response to detectinga selection of one of the template indicators 602, 604, the videopresentation system 112 identifies a video overlay template includingfields to populate with information about the bike ride.

For example, in response to detecting a user selection of the firsttemplate indicator 602, the video presentation system 112 causes themobile device 202 to display the enhanced live video presentation shownin FIG. 6B. As shown in FIG. 6B, the GUI 206 includes the live videostream display 208 and the video enhancement overlay corresponding tothe first selected template indicator 602. As shown in FIG. 6B, thevideo enhancement overlay includes displayed event information about theevent within fields of the identified video overlay template. Forexample, as shown in FIG. 6B, the GUI 206 includes a map field 606including a map of a bike path, a temperature field 608 indicating adetected temperature, a speed field 610 indicating a current speed ofthe mobile client device 202, and a heart rate field 612 indicating adetected heart rate of the user of the mobile client device 202.

In one or more embodiments, the information used to populate the fieldsof the selected video overlay template originates from multiple sources.For example, in one or more embodiments, the video presentation system112 receives map information associated with a location of the mobileclient device 202 from a third party server device 114 while streamingthe live video content. In addition, as shown in FIG. 6B, the map field606 includes a current position indicator 607 that shows a currentposition of the mobile client device 202 based on a detected GPSlocation (e.g., from a GPS sensor on the mobile client device 202). Inthis way, viewers of the enhanced live video presentation can see acurrent position of the broadcaster.

As a further example, in one or more embodiments, the enhanced livevideo presentation includes temperature information included within thetemperature field 608. In one or more embodiments, the videopresentation system 112 receives the temperature information from atemperature sensor on the mobile client device 202. In one or moreembodiments, the mobile client device 202 provides detected temperatureinformation to the video presentation system 112 to be used inpopulating the temperature field 608 of the video enhancement overlay.Alternatively, in one or more embodiments, the mobile client device 202populates a field of the video overlay template designated fortemperature information locally on the mobile client device 202 withoutsending the detected temperature information to the video presentationsystem 112. In one or more embodiments, the video presentation system112 receives the temperature information from an alternative source suchas, for example, the third party server 114.

As another example, in one or more embodiments, the enhanced live videopresentation includes speed information included within the speed field610. Similar to the temperature information, in one or more embodiments,the video presentation system 112 receives the speed information viaonboard sensors of the mobile client device 202. Alternatively, in oneor more embodiments, the mobile client device 202 locally populates thespeed field 610 of a video overlay template using locally detected speeddata.

As another example, in one or more embodiments, the enhanced live videopresentation includes heart rate information included within the heartrate field 612. In addition, similar to one or more embodiments herein,the mobile client device 202 can populate the heart rate field 612locally or, alternatively, provide the heart rate information to thevideo presentation system 112 to populate the heart rate field 612 ofthe video overlay template. In one or more embodiments, the mobileclient device 202 receives the heart rate information from a nearbyelectronic device (e.g., a smart watch, heart rate detector) thatwirelessly transmits, shares, or otherwise provides the heart rateinformation to the mobile client device 202.

FIGS. 1-6B, the corresponding text, and the examples, provide a numberof different systems and devices that enable a video presentation system112 to provide an enhanced live video presentation including live videocontent and a video enhancement overlay. In addition to the foregoing,embodiments can also be described in terms of flowcharts comprising actsin a method for accomplishing a particular result. For example, FIG. 7illustrates a flowchart of an exemplary method in accordance with one ormore embodiments. In particular, the video presentation system 112performs the various acts of FIG. 7 based on at least one processorexecuting instructions that cause the video presentation system 112 toperform the acts.

FIG. 7 illustrates a flowchart of one example method 700 for providingan enhanced live video presentation including a live video stream and avideo enhancement overlay including event information associated with alocation of a client device (e.g., first broadcasting client device 102a) capturing the live video stream. As shown in FIG. 7, the method 700includes an act 710 of detecting a live video stream originating from aclient device. For example, in one or more embodiments, the act 710involves detecting, at a server device (e.g., server device 108), a livevideo stream originating from a client device located at an event.

In one or more embodiments, the method 700 includes generating orotherwise identifying the event. For example, in one or moreembodiments, the method 700 involves identifying the event from aplurality of previously created events based on a time of origination ofthe live video stream and a location of the client device whilecapturing the live video stream. For example, where a broadcasterpreviously creates an event, identifying the event may involveidentifying the previously created event and associating the live videostream with the previously created event.

As another example of generating or identifying the event, the method700 can include detecting, at the server device, a plurality of livevideo streams originating from a plurality of client devices at alocation. In addition, the method 700 can include creating the eventbased on a number of the plurality of live video streams originatingfrom the plurality of client devices while at the location. As anotherexample, in one or more embodiments, the method 700 includes receiving,from the client device, a request to create the event associated with atime and location of the client device. In addition, the method 700 caninclude creating the event in response to receiving the request.

As shown in FIG. 7 the method 700 further includes an act 720 ofreceiving dynamic information associated with the event. For example, inone or more embodiments, receiving the dynamic information involvesreceiving information associated with the event from a third partyserver device 114. As another example, in one or more embodiments,receiving the dynamic information involves receiving information fromone or more sensors of the client device. As a further example, in oneor more embodiments, receiving the dynamic information associated withthe event involves receiving information from a plurality of clientdevices capturing a plurality of live video streams at the event.

In addition, the dynamic information can include various types ofinformation. As a first example, in one or more embodiments, the dynamicinformation includes information about a sporting event including ascore of the sporting event and a duration of time associated with thesporting event. As another example, in one or more embodiments, thedynamic information includes a current location of the client device anda detected speed if the client device. As a further example, in one ormore embodiments, the dynamic information includes a determined noiselevel of the event and detected motion data of a plurality of clientdevices.

As shown in FIG. 7, the method 700 further includes an act 730 ofidentifying a video overlay template for the event. For example, in oneor more embodiments, the act 730 involves identifying a video overlaytemplate for the event that includes one or more fields corresponding todiscrete portions of the dynamic information associated with the event.In one or more embodiments, identifying the video overlay templateinvolves providing a plurality of template indicators corresponding to aplurality of video overlay templates. In addition, identifying the videooverlay template can involve receiving, from the client device, a userselection of a template indicator of the plurality of templateindicators corresponding to the video overlay template for the event. Inone or more embodiments, providing the plurality of template indicatorsincludes identifying a plurality of templates having one or more fieldscorresponding to discrete portions of the dynamic information associatedwith the event.

As shown in FIG. 7, the method 700 further includes an act 740 ofgenerating a video enhancement overlay including the dynamic informationwithin fields of the video overlay template. For example, in one or moreembodiments, the act 740 includes generating a video enhancement overlayfor the live video stream where the video enhancement overlay includesportions of the received dynamic information within the one or morefields of the video overlay template. In one or more embodiments,generating the video enhancement overlay involves populating designatedthe fields (e.g., designated fields) of the video overlay template withportions of the dynamic information (e.g., corresponding to thedesignated fields).

As shown in FIG. 7, the method 700 further includes an act 750 ofproviding an enhanced live video presentation including the live videostream and the video enhancement overlay. For example, in one or moreembodiments, the act 750 involves providing, for display to a userassociated with a second client device (e.g., a first viewer clientdevice 104 a), the live video stream and the video enhancement overlay.In one or more embodiments, providing the live video stream and thevideo enhancement overlay involves providing the live video stream andthe video enhancement overlay to be displayed on any number of clientdevices (e.g., viewer client devices 104 a-n).

In one or more embodiments, the method 700 further includes detecting atrigger condition of the event based on the received dynamicinformation. In addition, in one or more embodiments, the method 700includes providing, for display to the user associated with the secondclient device and in conjunction with the live video stream and thevideo enhancement overlay, an animation associated with the triggercondition of the event.

Moreover, in one or more embodiments, the method 700 further includesidentifying information associated with a user of the client devicelocated at the event. In addition, in one or more embodiments, themethod 700 includes providing, for display to the user associated withthe second client device and in conjunction with the live video streamand the video enhancement overlay, a graphic associated with the eventand the identified information associated with the user of the clientdevice.

FIG. 8 illustrates, in block diagram form, an exemplary computing device800 that may be configured to perform one or more of the processesdescribed above. In one or more embodiments, the broadcasting clientdevices 102 a-n, viewer client devices 104 a-n, server device 108, andthird party server device 114 each comprise one or more computingdevices in accordance with implementations of computing device 800. Asshown by FIG. 8, the computing device can comprise a processor 802, amemory 804, a storage device 806, an I/O interface 808, and acommunication interface 810, which may be communicatively coupled by wayof communication infrastructure 812. While an exemplary computing device800 is shown in FIG. 8, the components illustrated in FIG. 8 are notintended to be limiting. Additional or alternative components may beused in other embodiments. Furthermore, in certain embodiments, acomputing device 800 can include fewer components than those shown inFIG. 8. Components of computing device 800 shown in FIG. 8 will now bedescribed in additional detail.

In particular embodiments, processor 802 includes hardware for executinginstructions, such as those making up a computer program. As an exampleand not by way of limitation, to execute instructions, processor 802 mayretrieve (or fetch) the instructions from an internal register, aninternal cache, memory 804, or storage device 806 and decode and executethem. In particular embodiments, processor 802 may include one or moreinternal caches for data, instructions, or addresses. As an example andnot by way of limitation, processor 802 may include one or moreinstruction caches, one or more data caches, and one or more translationlookaside buffers (TLBs). Instructions in the instruction caches may becopies of instructions in memory 804 or storage 806.

Memory 804 may be used for storing data, metadata, and programs forexecution by the processor(s). Memory 804 may include one or more ofvolatile and non-volatile memories, such as Random Access Memory(“RAM”), Read Only Memory (“ROM”), a solid state disk (“SSD”), Flash,Phase Change Memory (“PCM”), or other types of data storage. Memory 804may be internal or distributed memory.

Storage device 806 includes storage for storing data or instructions. Asan example and not by way of limitation, storage device 806 can comprisea non-transitory storage medium described above. Storage device 806 mayinclude a hard disk drive (HDD), a floppy disk drive, flash memory, anoptical disc, a magneto-optical disc, magnetic tape, or a UniversalSerial Bus (USB) drive or a combination of two or more of these. Storagedevice 806 may include removable or non-removable (or fixed) media,where appropriate. Storage device 806 may be internal or external to thecomputing device 800. In particular embodiments, storage device 806 isnon-volatile, solid-state memory. In other embodiments, Storage device806 includes read-only memory (ROM). Where appropriate, this ROM may bemask programmed ROM, programmable ROM (PROM), erasable PROM (EPROM),electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM),or flash memory or a combination of two or more of these.

I/O interface 808 allows a user to provide input to, receive outputfrom, and otherwise transfer data to and receive data from computingdevice 800. I/O interface 808 may include a mouse, a keypad or akeyboard, a touch screen, a camera, an optical scanner, networkinterface, modem, other known I/O devices or a combination of such I/Ointerfaces. I/O interface 808 may include one or more devices forpresenting output to a user, including, but not limited to, a graphicsengine, a display (e.g., a display screen), one or more output drivers(e.g., display drivers), one or more audio speakers, and one or moreaudio drivers. In certain embodiments, I/O interface 808 is configuredto provide graphical data to a display for presentation to a user. Thegraphical data may be representative of one or more graphical userinterfaces and/or any other graphical content as may serve a particularimplementation.

Communication interface 810 can include hardware, software, or both. Inany event, communication interface 810 can provide one or moreinterfaces for communication (such as, for example, packet-basedcommunication) between computing device 800 and one or more othercomputing devices or networks. As an example and not by way oflimitation, communication interface 810 may include a network interfacecontroller (NIC) or network adapter for communicating with an Ethernetor other wire-based network or a wireless NIC (WNIC) or wireless adapterfor communicating with a wireless network, such as a WI-FI.

Additionally or alternatively, communication interface 810 mayfacilitate communications with an ad hoc network, a personal areanetwork (PAN), a local area network (LAN), a wide area network (WAN), ametropolitan area network (MAN), or one or more portions of the Internetor a combination of two or more of these. One or more portions of one ormore of these networks may be wired or wireless. As an example,communication interface 810 may facilitate communications with awireless PAN (WPAN) (such as, for example, a BLUETOOTH WPAN), a WI-FInetwork, a WI-MAX network, a cellular telephone network (such as, forexample, a Global System for Mobile Communications (GSM) network), orother suitable wireless network or a combination thereof.

Communication infrastructure 812 may include hardware, software, or boththat couples components of computing device 800 to each other. As anexample and not by way of limitation, communication infrastructure 812may include an Accelerated Graphics Port (AGP) or other graphics bus, anEnhanced Industry Standard Architecture (EISA) bus, a front-side bus(FSB), a HYPERTRANSPORT (HT) interconnect, an Industry StandardArchitecture (ISA) bus, an INFINIBAND interconnect, a low-pin-count(LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, aPeripheral Component Interconnect (PCI) bus, a PCI-Express (PCIe) bus, aserial advanced technology attachment (SATA) bus, a Video ElectronicsStandards Association local (VLB) bus, or another suitable bus or acombination thereof.

As mentioned above, the communication system 110 may be linked to and/orimplemented within a social-networking system (e.g., a social networkingsystem). A social-networking system may enable its users (such aspersons or organizations) to interact with the system and with eachother. The social-networking system may, with input from a user, createand store in the social-networking system a user profile associated withthe user. The user profile may include demographic information,communication-channel information, and information on personal interestsof the user. The social-networking system may also, with input from auser, create and store a record of relationships of the user with otherusers of the social-networking system, as well as provide services (e.g.wall posts, photo-sharing, event organization, messaging, games, oradvertisements) to facilitate social interaction between or among users.

The social-networking system may store records of users andrelationships between users in a social graph comprising a plurality ofnodes and a plurality of edges connecting the nodes. The nodes maycomprise a plurality of user nodes and a plurality of concept nodes. Auser node of the social graph may correspond to a user of thesocial-networking system. A user may be an individual (human user), anentity (e.g., an enterprise, business, or third party application), or agroup (e.g., of individuals or entities). A user node corresponding to auser may comprise information provided by the user and informationgathered by various systems, including the social-networking system.

For example, the user may provide his or her name, profile picture, cityof residence, contact information, birth date, gender, marital status,family status, employment, educational background, preferences,interests, and other demographic information to be included in the usernode. Each user node of the social graph may have a corresponding webpage (typically known as a profile page). In response to a requestincluding a user name, the social-networking system can access a usernode corresponding to the user name, and construct a profile pageincluding the name, a profile picture, and other information associatedwith the user. A profile page of a first user may display to a seconduser all or a portion of the first user's information based on one ormore privacy settings by the first user and the relationship between thefirst user and the second user.

A concept node may correspond to a concept of the social-networkingsystem. For example, a concept can represent a real-world entity, suchas a movie, a song, a sports team, a celebrity, a group, a restaurant,or a place or a location. An administrative user of a concept nodecorresponding to a concept may create or update the concept node byproviding information of the concept (e.g., by filling out an onlineform), causing the social-networking system to associate the informationwith the concept node. For example and without limitation, informationassociated with a concept can include a name or a title, one or moreimages (e.g., an image of cover page of a book), a web site (e.g., anURL address) or contact information (e.g., a phone number, an emailaddress). Each concept node of the social graph may correspond to a webpage. For example, in response to a request including a name, thesocial-networking system can access a concept node corresponding to thename, and construct a web page including the name and other informationassociated with the concept.

An edge between a pair of nodes may represent a relationship between thepair of nodes. For example, an edge between two user nodes can representa friendship between two users. For another example, thesocial-networking system may construct a web page (or a structureddocument) of a concept node (e.g., a restaurant, a celebrity),incorporating one or more selectable buttons (e.g., “like”, “check in”)in the web page. A user can access the page using a web browser hostedby the user's client device and select a selectable button, causing theclient device to transmit to the social-networking system a request tocreate an edge between a user node of the user and a concept node of theconcept, indicating a relationship between the user and the concept(e.g., the user checks in to a restaurant, or the user “likes” acelebrity).

As an example, a user may provide (or change) his or her city ofresidence, causing the social-networking system to create an edgebetween a user node corresponding to the user and a concept nodecorresponding to the city declared by the user as his or her city ofresidence. In addition, the degree of separation between any two nodesis defined as the minimum number of hops required to traverse the socialgraph from one node to the other. A degree of separation between twonodes can be considered a measure of relatedness between the users orthe concepts represented by the two nodes in the social graph. Forexample, two users having user nodes that are directly connected by anedge (i.e., are first-degree nodes) may be described as “connectedusers” or “friends.” Similarly, two users having user nodes that areconnected only through another user node (i.e., are second-degree nodes)may be described as “friends of friends.”

A social-networking system may support a variety of applications, suchas photo sharing, on-line calendars and events, gaming, instantmessaging, and advertising. For example, the social-networking systemmay also include media sharing capabilities. Also, the social-networkingsystem may allow users to post photographs and other multimedia files toa user's profile page (typically known as “wall posts” or “timelineposts”) or in a photo album, both of which may be accessible to otherusers of the social-networking system depending upon the user'sconfigured privacy settings. The social-networking system may also allowusers to configure events. For example, a first user may configure anevent with attributes including time and date of the event, location ofthe event and other users invited to the event. The invited users mayreceive invitations to the event and respond (such as by accepting theinvitation or declining it). Furthermore, the social-networking systemmay allow users to maintain a personal calendar. Similar to events, thecalendar entries may include times, dates, locations and identities ofother users.

FIG. 9 illustrates an example network environment 900 of asocial-networking system. In particular embodiments, a social-networkingsystem 902 may comprise one or more data stores. In particularembodiments, the social-networking system 902 may store a social graphcomprising user nodes, concept nodes, and edges between nodes asdescribed earlier. Each user node may comprise one or more data objectscorresponding to information associated with or describing a user. Eachconcept node may comprise one or more data objects corresponding toinformation associated with a concept. Each edge between a pair of nodesmay comprise one or more data objects corresponding to informationassociated with a relationship between users (or between a user and aconcept, or between concepts) corresponding to the pair of nodes.

In particular embodiments, the social-networking system 902 may compriseone or more computing devices (e.g., servers) hosting functionalitydirected to operation of the social-networking system 902. A user of thesocial-networking system 902 may access the social-networking system 902using a client device such as client device 906. In particularembodiments, the client device 906 can interact with thesocial-networking system 902 through a network 904.

The client device 906 may be a desktop computer, a laptop computer, atablet computer, a personal digital assistant (PDA), an in- orout-of-car navigation system, a smart phone or other cellular or mobilephone, or a mobile gaming device, other mobile device, or other suitablecomputing devices. Client device 906 may execute one or more clientapplications, such as a web browser (e.g., Microsoft Windows InternetExplorer, Mozilla Firefox, Apple Safari, Google Chrome, Opera, etc.) ora native or special-purpose client application (e.g., Facebook foriPhone or iPad, Facebook for Android, etc.), to access and view contentover network 904.

Network 904 may represent a network or collection of networks (such asthe Internet, a corporate intranet, a virtual private network (VPN), alocal area network (LAN), a wireless local area network (WLAN), acellular network, a wide area network (WAN), a metropolitan area network(MAN), or a combination of two or more such networks) over which clientdevices 906 may access the social-networking system 902.

While these methods, systems, and user interfaces utilize both publiclyavailable information as well as information provided by users of thesocial-networking system, all use of such information is to beexplicitly subject to all privacy settings of the involved users and theprivacy policy of the social-networking system as a whole.

FIG. 10 illustrates example social graph 1000. In particularembodiments, social networking system 902 may store one or more socialgraphs 1000 in one or more data stores. In particular embodiments,social graph 1000 may include multiple nodes—which may include multipleuser nodes 1002 or multiple concept nodes 1004—and multiple edges 1006connecting the nodes. Example social graph 1000 illustrated in FIG. 10is shown, for didactic purposes, in a two-dimensional visual maprepresentation. In particular embodiments, a social networking system902, client system 906, or third-party system 908 may access socialgraph 1000 and related social-graph information for suitableapplications. The nodes and edges of social graph 1000 may be stored asdata objects, for example, in a data store (such as a social-graphdatabase). Such a data store may include one or more searchable or queryable indexes of nodes or edges of social graph 1000.

In particular embodiments, a user node 1002 may correspond to a user ofsocial networking system 902. As an example and not by way oflimitation, a user may be an individual (human user), an entity (e.g.,an enterprise, business, or third-party application), or a group (e.g.,of individuals or entities) that interacts or communicates with or oversocial networking system 902. In particular embodiments, when a userregisters for an account with social networking system 902, socialnetworking system 902 may create a user node 1002 corresponding to theuser, and store the user node 1002 in one or more data stores. Users anduser nodes 1002 described herein may, where appropriate, refer toregistered users and user nodes 1002 associated with registered users.In addition or as an alternative, users and user nodes 1002 describedherein may, where appropriate, refer to users that have not registeredwith social networking system 902. In particular embodiments, a usernode 1002 may be associated with information provided by a user orinformation gathered by various systems, including social networkingsystem 902. As an example and not by way of limitation, a user mayprovide his or her name, profile picture, contact information, birthdate, sex, marital status, family status, employment, educationbackground, preferences, interests, or other demographic information.Each user node of the social graph may have a corresponding web page(typically known as a profile page). In response to a request includinga user name, the social networking system can access a user nodecorresponding to the user name, and construct a profile page includingthe name, a profile picture, and other information associated with theuser. A profile page of a first user may display to a second user all ora portion of the first user's information based on one or more privacysettings by the first user and the relationship between the first userand the second user.

In particular embodiments, a concept node 1004 may correspond to aconcept. As an example and not by way of limitation, a concept maycorrespond to a place (such as, for example, a movie theater,restaurant, landmark, or city); a website (such as, for example, awebsite associated with social-network system 902 or a third-partywebsite associated with a web-application server); an entity (such as,for example, a person, business, group, sports team, or celebrity); aresource (such as, for example, an audio file, video file, digitalphoto, text file, structured document, or application) which may belocated within social networking system 902 or on an external server,such as a web-application server; real or intellectual property (suchas, for example, a sculpture, painting, movie, game, song, idea,photograph, or written work); a game; an activity; an idea or theory;another suitable concept; or two or more such concepts. A concept node1004 may be associated with information of a concept provided by a useror information gathered by various systems, including social networkingsystem 902. As an example and not by way of limitation, information of aconcept may include a name or a title; one or more images (e.g., animage of the cover page of a book); a location (e.g., an address or ageographical location); a website (which may be associated with a URL);contact information (e.g., a phone number or an email address); othersuitable concept information; or any suitable combination of suchinformation. In particular embodiments, a concept node 1004 may beassociated with one or more data objects corresponding to informationassociated with concept node 1004. In particular embodiments, a conceptnode 1004 may correspond to one or more webpages.

In particular embodiments, a node in social graph 1000 may represent orbe represented by a webpage (which may be referred to as a “profilepage”). Profile pages may be hosted by or accessible to socialnetworking system 902. Profile pages may also be hosted on third-partywebsites associated with a third-party server 908. As an example and notby way of limitation, a profile page corresponding to a particularexternal webpage may be the particular external webpage and the profilepage may correspond to a particular concept node 1004. Profile pages maybe viewable by all or a selected subset of other users. As an exampleand not by way of limitation, a user node 1002 may have a correspondinguser-profile page in which the corresponding user may add content, makedeclarations, or otherwise express himself or herself. As anotherexample and not by way of limitation, a concept node 1004 may have acorresponding concept-profile page in which one or more users may addcontent, make declarations, or express themselves, particularly inrelation to the concept corresponding to concept node 1004.

In particular embodiments, a concept node 1004 may represent athird-party webpage or resource hosted by a third-party system 908. Thethird-party webpage or resource may include, among other elements,content, a selectable or other icon, or other inter-actable object(which may be implemented, for example, in JavaScript, AJAX, or PHPcodes) representing an action or activity. As an example and not by wayof limitation, a third-party webpage may include a selectable icon suchas “like,” “check in,” “eat,” “recommend,” or another suitable action oractivity. A user viewing the third-party webpage may perform an actionby selecting one of the icons (e.g., “eat”), causing a client system 906to send to social networking system 902 a message indicating the user'saction. In response to the message, social networking system 902 maycreate an edge (e.g., an “eat” edge) between a user node 1002corresponding to the user and a concept node 1004 corresponding to thethird-party webpage or resource and store edge 1006 in one or more datastores.

In particular embodiments, a pair of nodes in social graph 1000 may beconnected to each other by one or more edges 1006. An edge 1006connecting a pair of nodes may represent a relationship between the pairof nodes. In particular embodiments, an edge 1006 may include orrepresent one or more data objects or attributes corresponding to therelationship between a pair of nodes. As an example and not by way oflimitation, a first user may indicate that a second user is a “friend”of the first user. In response to this indication, social networkingsystem 902 may send a “friend request” to the second user. If the seconduser confirms the “friend request,” social networking system 902 maycreate an edge 1006 connecting the first user's user node 1002 to thesecond user's user node 1002 in social graph 1000 and store edge 1006 associal-graph information in one or more of data stores. In the exampleof FIG. 10, social graph 1000 includes an edge 1006 indicating a friendrelation between user nodes 1002 of user “A” and user “B” and an edgeindicating a friend relation between user nodes 1002 of user “C” anduser “B.” Although this disclosure describes or illustrates particularedges 1006 with particular attributes connecting particular user nodes1002, this disclosure contemplates any suitable edges 1006 with anysuitable attributes connecting user nodes 1002. As an example and not byway of limitation, an edge 1006 may represent a friendship, familyrelationship, business or employment relationship, fan relationship,follower relationship, visitor relationship, sub scriber relationship,superior/subordinate relationship, reciprocal relationship,non-reciprocal relationship, another suitable type of relationship, ortwo or more such relationships. Moreover, although this disclosuregenerally describes nodes as being connected, this disclosure alsodescribes users or concepts as being connected. Herein, references tousers or concepts being connected may, where appropriate, refer to thenodes corresponding to those users or concepts being connected in socialgraph 1000 by one or more edges 1006.

In particular embodiments, an edge 1006 between a user node 1002 and aconcept node 1004 may represent a particular action or activityperformed by a user associated with user node 1002 toward a conceptassociated with a concept node 1004. As an example and not by way oflimitation, as illustrated in FIG. 10, a user may “like,” “attended,”“played,” “listened,” “cooked,” “worked at,” or “watched” a concept,each of which may correspond to an edge type or subtype. Aconcept-profile page corresponding to a concept node 1004 may include,for example, a selectable “check in” icon (such as, for example, aclickable “check in” icon) or a selectable “add to favorites” icon.Similarly, after a user clicks these icons, social networking system 902may create a “favorite” edge or a “check in” edge in response to auser's action corresponding to a respective action. As another exampleand not by way of limitation, a user (user “C”) may listen to aparticular song (“Ramble On”) using a particular application (SPOTIFY,which is an online music application). In this case, social networkingsystem 902 may create a “listened” edge 1006 and a “used” edge (asillustrated in FIG. 10) between user nodes 1002 corresponding to theuser and concept nodes 1004 corresponding to the song and application toindicate that the user listened to the song and used the application.Moreover, social networking system 902 may create a “played” edge 1006(as illustrated in FIG. 10) between concept nodes 1004 corresponding tothe song and the application to indicate that the particular song wasplayed by the particular application. In this case, “played” edge 1006corresponds to an action performed by an external application (SPOTIFY)on an external audio file (the song “Imagine”). Although this disclosuredescribes particular edges 1006 with particular attributes connectinguser nodes 1002 and concept nodes 1004, this disclosure contemplates anysuitable edges 1006 with any suitable attributes connecting user nodes1002 and concept nodes 1004. Moreover, although this disclosuredescribes edges between a user node 1002 and a concept node 1004representing a single relationship, this disclosure contemplates edgesbetween a user node 1002 and a concept node 1004 representing one ormore relationships. As an example and not by way of limitation, an edge1006 may represent both that a user likes and has used at a particularconcept. Alternatively, another edge 1006 may represent each type ofrelationship (or multiples of a single relationship) between a user node1002 and a concept node 1004 (as illustrated in FIG. 10 between usernode 1002 for user “E” and concept node 1004 for “SPOTIFY”).

In particular embodiments, social networking system 902 may create anedge 1006 between a user node 1002 and a concept node 1004 in socialgraph 1000. As an example and not by way of limitation, a user viewing aconcept-profile page (such as, for example, by using a web browser or aspecial-purpose application hosted by the user's client system 906) mayindicate that he or she likes the concept represented by the conceptnode 1004 by clicking or selecting a “Like” icon, which may cause theuser's client system 906 to send to social networking system 902 amessage indicating the user's liking of the concept associated with theconcept-profile page. In response to the message, social networkingsystem 902 may create an edge 1006 between user node 1002 associatedwith the user and concept node 1004, as illustrated by “like” edge 1006between the user and concept node 1004. In particular embodiments,social networking system 902 may store an edge 1006 in one or more datastores. In particular embodiments, an edge 1006 may be automaticallyformed by social networking system 902 in response to a particular useraction. As an example and not by way of limitation, if a first useruploads a picture, watches a movie, or listens to a song, an edge 1006may be formed between user node 1002 corresponding to the first user andconcept nodes 1004 corresponding to those concepts. Although thisdisclosure describes forming particular edges 1006 in particularmanners, this disclosure contemplates forming any suitable edges 1006 inany suitable manner.

In particular embodiments, an advertisement may be text (which may beHTML-linked), one or more images (which may be HTML-linked), one or morevideos, audio, one or more ADOBE FLASH files, a suitable combination ofthese, or any other suitable advertisement in any suitable digitalformat presented on one or more webpages, in one or more e-mails, or inconnection with search results requested by a user. In addition or as analternative, an advertisement may be one or more sponsored stories(e.g., a news-feed or ticker item on social networking system 902). Asponsored story may be a social action by a user (such as “liking” apage, “liking” or commenting on a post on a page, RSVPing to an eventassociated with a page, voting on a question posted on a page, checkingin to a place, using an application or playing a game, or “liking” orsharing a website) that an advertiser promotes, for example, by havingthe social action presented within a pre-determined area of a profilepage of a user or other page, presented with additional informationassociated with the advertiser, bumped up or otherwise highlightedwithin news feeds or tickers of other users, or otherwise promoted. Theadvertiser may pay to have the social action promoted. As an example andnot by way of limitation, advertisements may be included among thesearch results of a search-results page, where sponsored content ispromoted over non-sponsored content.

In particular embodiments, an advertisement may be requested for displaywithin social-networking-system webpages, third-party webpages, or otherpages. An advertisement may be displayed in a dedicated portion of apage, such as in a banner area at the top of the page, in a column atthe side of the page, in a GUI of the page, in a pop-up window, in adrop-down menu, in an input field of the page, over the top of contentof the page, or elsewhere with respect to the page. In addition or as analternative, an advertisement may be displayed within an application. Anadvertisement may be displayed within dedicated pages, requiring theuser to interact with or watch the advertisement before the user mayaccess a page or utilize an application. The user may, for example viewthe advertisement through a web browser.

A user may interact with an advertisement in any suitable manner. Theuser may click or otherwise select the advertisement. By selecting theadvertisement, the user may be directed to (or a browser or otherapplication being used by the user) a page associated with theadvertisement. At the page associated with the advertisement, the usermay take additional actions, such as purchasing a product or serviceassociated with the advertisement, receiving information associated withthe advertisement, or subscribing to a newsletter associated with theadvertisement. An advertisement with audio or video may be played byselecting a component of the advertisement (like a “play button”).Alternatively, by selecting the advertisement, social networking system902 may execute or modify a particular action of the user.

An advertisement may also include social-networking-system functionalitythat a user may interact with. As an example and not by way oflimitation, an advertisement may enable a user to “like” or otherwiseendorse the advertisement by selecting an icon or link associated withendorsement. As another example and not by way of limitation, anadvertisement may enable a user to search (e.g., by executing a query)for content related to the advertiser. Similarly, a user may share theadvertisement with another user (e.g., through social networking system902) or RSVP (e.g., through social networking system 902) to an eventassociated with the advertisement. In addition or as an alternative, anadvertisement may include social-networking-system context directed tothe user. As an example and not by way of limitation, an advertisementmay display information about a friend of the user within socialnetworking system 902 who has taken an action associated with thesubject matter of the advertisement.

In particular embodiments, social networking system 902 may determinethe social-graph affinity (which may be referred to herein as“affinity”) of various social-graph entities for each other. Affinitymay represent the strength of a relationship or level of interestbetween particular objects associated with the online social network,such as users, concepts, content, actions, advertisements, other objectsassociated with the online social network, or any suitable combinationthereof. Affinity may also be determined with respect to objectsassociated with third-party systems 908 or other suitable systems. Anoverall affinity for a social-graph entity for each user, subjectmatter, or type of content may be established. The overall affinity maychange based on continued monitoring of the actions or relationshipsassociated with the social-graph entity. Although this disclosuredescribes determining particular affinities in a particular manner, thisdisclosure contemplates determining any suitable affinities in anysuitable manner.

In particular embodiments, social networking system 902 may measure orquantify social-graph affinity using an affinity coefficient (which maybe referred to herein as “coefficient”). The coefficient may representor quantify the strength of a relationship between particular objectsassociated with the online social network. The coefficient may alsorepresent a probability or function that measures a predictedprobability that a user will perform a particular action based on theuser's interest in the action. In this way, a user's future actions maybe predicted based on the user's prior actions, where the coefficientmay be calculated at least in part on the history of the user's actions.Coefficients may be used to predict any number of actions, which may bewithin or outside of the online social network. As an example and not byway of limitation, these actions may include various types ofcommunications, such as sending messages, posting content, or commentingon content; various types of observation actions, such as accessing orviewing profile pages, media, or other suitable content; various typesof coincidence information about two or more social-graph entities, suchas being in the same group, tagged in the same photograph, checked-in atthe same location, or attending the same event; or other suitableactions. Although this disclosure describes measuring affinity in aparticular manner, this disclosure contemplates measuring affinity inany suitable manner.

In particular embodiments, social networking system 902 may use avariety of factors to calculate a coefficient. These factors mayinclude, for example, user actions, types of relationships betweenobjects, location information, other suitable factors, or anycombination thereof. In particular embodiments, different factors may beweighted differently when calculating the coefficient. The weights foreach factor may be static or the weights may change according to, forexample, the user, the type of relationship, the type of action, theuser's location, and so forth. Ratings for the factors may be combinedaccording to their weights to determine an overall coefficient for theuser. As an example and not by way of limitation, particular useractions may be assigned both a rating and a weight while a relationshipassociated with the particular user action is assigned a rating and acorrelating weight (e.g., so the weights total 250%). To calculate thecoefficient of a user towards a particular object, the rating assignedto the user's actions may comprise, for example, 60% of the overallcoefficient, while the relationship between the user and the object maycomprise 40% of the overall coefficient. In particular embodiments, thesocial networking system 902 may consider a variety of variables whendetermining weights for various factors used to calculate a coefficient,such as, for example, the time since information was accessed, decayfactors, frequency of access, relationship to information orrelationship to the object about which information was accessed,relationship to social-graph entities connected to the object, short- orlong-term averages of user actions, user feedback, other suitablevariables, or any combination thereof. As an example and not by way oflimitation, a coefficient may include a decay factor that causes thestrength of the signal provided by particular actions to decay withtime, such that more recent actions are more relevant when calculatingthe coefficient. The ratings and weights may be continuously updatedbased on continued tracking of the actions upon which the coefficient isbased. Any type of process or algorithm may be employed for assigning,combining, averaging, and so forth the ratings for each factor and theweights assigned to the factors. In particular embodiments, socialnetworking system 902 may determine coefficients using machine-learningalgorithms trained on historical actions and past user responses, ordata farmed from users by exposing them to various options and measuringresponses. Although this disclosure describes calculating coefficientsin a particular manner, this disclosure contemplates calculatingcoefficients in any suitable manner.

In particular embodiments, social networking system 902 may calculate acoefficient based on a user's actions. Social networking system 902 maymonitor such actions on the online social network, on a third-partysystem 908, on other suitable systems, or any combination thereof. Anysuitable type of user actions may be tracked or monitored. Typical useractions include viewing profile pages, creating or posting content,interacting with content, joining groups, listing and confirmingattendance at events, checking-in at locations, liking particular pages,creating pages, and performing other tasks that facilitate socialaction. In particular embodiments, social networking system 902 maycalculate a coefficient based on the user's actions with particulartypes of content. The content may be associated with the online socialnetwork, a third-party system 908, or another suitable system. Thecontent may include users, profile pages, posts, news stories,headlines, instant messages, chat room conversations, emails,advertisements, pictures, video, music, other suitable objects, or anycombination thereof. Social networking system 902 may analyze a user'sactions to determine whether one or more of the actions indicate anaffinity for subject matter, content, other users, and so forth. As anexample and not by way of limitation, if a user may make frequentlyposts content related to “coffee” or variants thereof, social networkingsystem 902 may determine the user has a high coefficient with respect tothe concept “coffee.” Particular actions or types of actions may beassigned a higher weight and/or rating than other actions, which mayaffect the overall calculated coefficient. As an example and not by wayof limitation, if a first user emails a second user, the weight or therating for the action may be higher than if the first user simply viewsthe user-profile page for the second user.

In particular embodiments, social networking system 902 may calculate acoefficient based on the type of relationship between particularobjects. Referencing the social graph 1000, social networking system 902may analyze the number and/or type of edges 1006 connecting particularuser nodes 1002 and concept nodes 1004 when calculating a coefficient.As an example and not by way of limitation, user nodes 1002 that areconnected by a spouse-type edge (representing that the two users aremarried) may be assigned a higher coefficient than user nodes 1002 thatare connected by a friend-type edge. In other words, depending upon theweights assigned to the actions and relationships for the particularuser, the overall affinity may be determined to be higher for contentabout the user's spouse than for content about the user's friend. Inparticular embodiments, the relationships a user has with another objectmay affect the weights and/or the ratings of the user's actions withrespect to calculating the coefficient for that object. As an exampleand not by way of limitation, if a user is tagged in first photo, butmerely likes a second photo, social networking system 902 may determinethat the user has a higher coefficient with respect to the first photothan the second photo because having a tagged-in-type relationship withcontent may be assigned a higher weight and/or rating than having alike-type relationship with content. In particular embodiments, socialnetworking system 902 may calculate a coefficient for a first user basedon the relationship one or more second users have with a particularobject. In other words, the connections and coefficients other usershave with an object may affect the first user's coefficient for theobject. As an example and not by way of limitation, if a first user isconnected to or has a high coefficient for one or more second users, andthose second users are connected to or have a high coefficient for aparticular object, social networking system 902 may determine that thefirst user should also have a relatively high coefficient for theparticular object. In particular embodiments, the coefficient may bebased on the degree of separation between particular objects. Degree ofseparation between any two nodes is defined as the minimum number ofhops required to traverse the social graph from one node to the other. Adegree of separation between two nodes can be considered a measure ofrelatedness between the users or the concepts represented by the twonodes in the social graph. For example, two users having user nodes thatare directly connected by an edge (i.e., are first-degree nodes) may bedescribed as “connected users” or “friends.” Similarly, two users havinguser nodes that are connected only through another user node (i.e., aresecond-degree nodes) may be described as “friends of friends.” The lowercoefficient may represent the decreasing likelihood that the first userwill share an interest in content objects of the user that is indirectlyconnected to the first user in the social graph 1000. As an example andnot by way of limitation, social-graph entities that are closer in thesocial graph 1000 (i.e., fewer degrees of separation) may have a highercoefficient than entities that are further apart in the social graph1000.

In particular embodiments, social networking system 902 may calculate acoefficient based on location information. Objects that aregeographically closer to each other may be considered to be morerelated, or of more interest, to each other than more distant objects.In particular embodiments, the coefficient of a user towards aparticular object may be based on the proximity of the object's locationto a current location associated with the user (or the location of aclient system 906 of the user). A first user may be more interested inother users or concepts that are closer to the first user. As an exampleand not by way of limitation, if a user is one mile from an airport andtwo miles from a gas station, social networking system 902 may determinethat the user has a higher coefficient for the airport than the gasstation based on the proximity of the airport to the user.

In particular embodiments, social networking system 902 may performparticular actions with respect to a user based on coefficientinformation. Coefficients may be used to predict whether a user willperform a particular action based on the user's interest in the action.A coefficient may be used when generating or presenting any type ofobjects to a user, such as advertisements, search results, news stories,media, messages, notifications, or other suitable objects. Thecoefficient may also be utilized to rank and order such objects, asappropriate. In this way, social networking system 902 may provideinformation that is relevant to user's interests and currentcircumstances, increasing the likelihood that they will find suchinformation of interest. In particular embodiments, social networkingsystem 902 may generate content based on coefficient information.Content objects may be provided or selected based on coefficientsspecific to a user. As an example and not by way of limitation, thecoefficient may be used to generate media for the user, where the usermay be presented with media for which the user has a high overallcoefficient with respect to the media object. As another example and notby way of limitation, the coefficient may be used to generateadvertisements for the user, where the user may be presented withadvertisements for which the user has a high overall coefficient withrespect to the advertised object. In particular embodiments, socialnetworking system 902 may generate search results based on coefficientinformation. Search results for a particular user may be scored orranked based on the coefficient associated with the search results withrespect to the querying user. As an example and not by way oflimitation, search results corresponding to objects with highercoefficients may be ranked higher on a search-results page than resultscorresponding to objects having lower coefficients.

In particular embodiments, social networking system 902 may calculate acoefficient in response to a request for a coefficient from a particularsystem or process. To predict the likely actions a user may take (or maybe the subject of) in a given situation, any process may request acalculated coefficient for a user. The request may also include a set ofweights to use for various factors used to calculate the coefficient.This request may come from a process running on the online socialnetwork, from a third-party system 908 (e.g., via an API or othercommunication channel), or from another suitable system. In response tothe request, social networking system 902 may calculate the coefficient(or access the coefficient information if it has previously beencalculated and stored). In particular embodiments, social networkingsystem 902 may measure an affinity with respect to a particular process.Different processes (both internal and external to the online socialnetwork) may request a coefficient for a particular object or set ofobjects. Social networking system 902 may provide a measure of affinitythat is relevant to the particular process that requested the measure ofaffinity. In this way, each process receives a measure of affinity thatis tailored for the different context in which the process will use themeasure of affinity.

In connection with social-graph affinity and affinity coefficients,particular embodiments may utilize one or more systems, components,elements, functions, methods, operations, or steps disclosed in U.S.patent application Ser. No. 11/503,093, filed Aug. 8, 2006, U.S. patentapplication Ser. No. 12/977,027, filed Dec. 22, 2010, U.S. patentapplication Ser. No. 12/978,265, filed Dec. 23, 2010, and U.S. patentapplication Ser. No. 13/632,869, field Oct. 1, 2012, each of which isincorporated by reference in their entirety.

In particular embodiments, one or more of the content objects of theonline social network may be associated with a privacy setting. Theprivacy settings (or “access settings”) for an object may be stored inany suitable manner, such as, for example, in association with theobject, in an index on an authorization server, in another suitablemanner, or any combination thereof. A privacy setting of an object mayspecify how the object (or particular information associated with anobject) can be accessed (e.g., viewed or shared) using the online socialnetwork. Where the privacy settings for an object allow a particularuser to access that object, the object may be described as being“visible” with respect to that user. As an example and not by way oflimitation, a user of the online social network may specify privacysettings for a user-profile page identify a set of users that may accessthe work experience information on the user-profile page, thus excludingother users from accessing the information. In particular embodiments,the privacy settings may specify a “blocked list” of users that shouldnot be allowed to access certain information associated with the object.In other words, the blocked list may specify one or more users orentities for which an object is not visible. As an example and not byway of limitation, a user may specify a set of users that may not accessphotos albums associated with the user, thus excluding those users fromaccessing the photo albums (while also possibly allowing certain usersnot within the set of users to access the photo albums). In particularembodiments, privacy settings may be associated with particularsocial-graph elements. Privacy settings of a social-graph element, suchas a node or an edge, may specify how the social-graph element,information associated with the social-graph element, or content objectsassociated with the social-graph element can be accessed using theonline social network. As an example and not by way of limitation, aparticular concept node 1004 corresponding to a particular photo mayhave a privacy setting specifying that the photo may only be accessed byusers tagged in the photo and their friends. In particular embodiments,privacy settings may allow users to opt in or opt out of having theiractions logged by social networking system 902 or shared with othersystems (e.g., third-party system 908). In particular embodiments, theprivacy settings associated with an object may specify any suitablegranularity of permitted access or denial of access. As an example andnot by way of limitation, access or denial of access may be specifiedfor particular users (e.g., only me, my roommates, and my boss), userswithin a particular degrees-of-separation (e.g., friends, orfriends-of-friends), user groups (e.g., the gaming club, my family),user networks (e.g., employees of particular employers, students oralumni of particular university), all users (“public”), no users(“private”), users of third-party systems 908, particular applications(e.g., third-party applications, external websites), other suitableusers or entities, or any combination thereof. Although this disclosuredescribes using particular privacy settings in a particular manner, thisdisclosure contemplates using any suitable privacy settings in anysuitable manner.

In particular embodiments, one or more servers may beauthorization/privacy servers for enforcing privacy settings. Inresponse to a request from a user (or other entity) for a particularobject stored in a data store, social networking system 902 may send arequest to the data store for the object. The request may identify theuser associated with the request and may only be sent to the user (or aclient system 906 of the user) if the authorization server determinesthat the user is authorized to access the object based on the privacysettings associated with the object. If the requesting user is notauthorized to access the object, the authorization server may preventthe requested object from being retrieved from the data store, or mayprevent the requested object from be sent to the user. In the searchquery context, an object may only be generated as a search result if thequerying user is authorized to access the object. In other words, theobject must have a visibility that is visible to the querying user. Ifthe object has a visibility that is not visible to the user, the objectmay be excluded from the search results. Although this disclosuredescribes enforcing privacy settings in a particular manner, thisdisclosure contemplates enforcing privacy settings in any suitablemanner.

In the foregoing specification, the invention has been described withreference to specific exemplary embodiments thereof. Various embodimentsand aspects of the invention(s) are described with reference to detailsdiscussed herein, and the accompanying drawings illustrate the variousembodiments. The description above and drawings are illustrative of theinvention and are not to be construed as limiting the invention.Numerous specific details are described to provide a thoroughunderstanding of various embodiments of the present invention.

The present invention may be embodied in other specific forms withoutdeparting from its spirit or essential characteristics. The describedembodiments are to be considered in all respects only as illustrativeand not restrictive. For example, the methods described herein may beperformed with less or more steps/acts or the steps/acts may beperformed in differing orders. Additionally, the steps/acts describedherein may be repeated or performed in parallel with one another or inparallel with different instances of the same or similar steps/acts. Thescope of the invention is, therefore, indicated by the appended claimsrather than by the foregoing description. All changes that come withinthe meaning and range of equivalency of the claims are to be embracedwithin their scope.

What is claimed is:
 1. A method comprising: detecting, at a serverdevice, a live video stream originating from a first client device;determining a location of the first client device based on detecting thelive video stream; identifying an event corresponding to the location ofthe first client device; receiving dynamic information associated withthe event; providing, to the first client device, a plurality oftemplate indicators corresponding to a plurality of video overlaytemplates associated with the event, wherein the plurality of templateindicators comprises: a first template indicator associated with a firstvideo overlay template, the first video overlay template comprising afirst set of fields corresponding to discrete portions of the dynamicinformation associated with the event; and a second template indicatorassociated with a second video overlay template, the second videooverlay template comprising a second set of fields corresponding todiscrete portions of the dynamic information associated with the event,wherein the second set of fields comprises one or more fieldscorresponding to different discrete portions of the dynamic informationassociated with the event than the first set of fields from the firstvideo overlay template; receiving, from the first client device, a userselection of the first template indicator from the plurality of templateindicators corresponding to the video overlay template associated withthe event; generating a video enhancement overlay for the live videostream, the video enhancement overlay comprising portions of thereceived dynamic information within the first set of fields of the firstvideo overlay template; and providing, for display to a user associatedwith a second client device, the live video stream and the videoenhancement overlay.
 2. The method of claim 1, further comprisingidentifying the event from a plurality of previously created eventsbased on a time of origination of the live video stream and the locationof the first client device.
 3. The method of claim 1, furthercomprising: detecting, at the server device, a plurality of live videostreams originating from a plurality of client devices at the locationof the first client device; and creating the event based on a number ofthe plurality of live video streams originating from the plurality ofclient devices while at the location.
 4. The method of claim 1, furthercomprising: receiving, from the first client device, a request to createthe event associated with a time of origination of the live video streamand the location of the first client device; and creating the event inresponse to receiving the request.
 5. The method of claim 1, whereinreceiving dynamic information associated with the event comprisesreceiving information associated with the event from a third partyserver device.
 6. The method of claim 5, wherein the event comprises asporting event, and wherein the discrete portions of the dynamicinformation comprise a score of the sporting event and a duration oftime associated with the sporting event.
 7. The method of claim 1,wherein receiving dynamic information associated with the eventcomprises receiving information from one or more sensors of the firstclient device.
 8. The method of claim 7, wherein the discrete portionsof the dynamic information comprise a current location of the firstclient device and a detected speed of the first client device.
 9. Themethod of claim 1, wherein receiving dynamic information associated withthe event comprises receiving information from a plurality of clientdevices located at the event.
 10. The method of claim 9, wherein thediscrete portions of the dynamic information comprise a determined noiselevel of the event based on captured noise data and detected motion databy the plurality of client devices.
 11. The method of claim 1, furthercomprising: detecting a trigger condition of the event based on thereceived dynamic information; and providing, for display to the userassociated with the second client device and in conjunction with thelive video stream and the video enhancement overlay, an animationassociated with the trigger condition of the event.
 12. The method ofclaim 1, further comprising: identifying information associated with auser of the first client device; and providing, for display to the userassociated with the second client device and in conjunction with thelive video stream and the video enhancement overlay, the identifiedinformation associated with the user of the first client device.
 13. Themethod of claim 1, further comprising identifying the plurality of videooverlay templates each having one or more fields corresponding todiscrete portions of the dynamic information associated with the event.14. The method of claim 1, wherein: the dynamic information associatedwith the event comprises data captured by one or more onboard sensorsthe first client device; and the plurality of video overlay templatescomprises one or more fields corresponding to types of data captured bythe one or more onboard sensors of the first client device.
 15. A systemcomprising: at least one processor; and at least one non-transitorycomputer readable storage medium storing instruction thereon that, whenexecuted by the at least one processor, cause the system to: detect, ata server device, a live video stream originating from a first clientdevice; determine a location of the first client device based ondetecting the live video stream; identify an event corresponding to thelocation of the first client device; receive dynamic informationassociated with the event; provide a plurality of template indicatorscorresponding to a plurality of video overlay templates associated withthe event, wherein the plurality of template indicators comprises: afirst template indicator associated with a first video overlay template,the first video overlay template comprising a first set of fieldscorresponding to discrete portions of the dynamic information associatedwith the event; and a second template indicator associated with a secondvideo overlay template, the second video overlay template comprising asecond set of fields corresponding to discrete portions of the dynamicinformation associated with the event, wherein the second set of fieldscomprises one or more fields corresponding to different discreteportions of the dynamic information associated with the event than thefirst set of fields from the first video overlay template; receive, fromthe first client device, a user selection of the first templateindicator from the plurality of template indicators corresponding to thevideo overlay template associated with the event; generate a videoenhancement overlay for the live video stream, the video enhancementoverlay comprising portions of the received dynamic information withinthe first set of fields of the first video overlay template; andprovide, for display to a user associated with a second client device,the live video stream and the video enhancement overlay.
 16. The systemof claim 15, further comprising instructions that, when executed by theat least one processor, cause the system to identify the event from aplurality of previously created events based on a time of origination ofthe live video stream and the location of the first client device. 17.The system of claim 15, further comprising instructions that, whenexecuted by the at least one processor, cause the system to: receive,from the first client device, a request to create the event associatedwith a time of origination of the live video stream and the location ofthe first client device; and create the event in response to receivingthe request.
 18. A non-transitory computer readable medium storinginstructions thereon that, when executed by at least one processor,cause a computer system to: detect, at a server device, a live videostream originating from a first client device; determine a location ofthe first client device based on detecting the live video stream;identify an event corresponding to the location of the first clientdevice; receive dynamic information associated with the event; provide aplurality of template indicators corresponding to a plurality of videooverlay templates associated with the event, wherein the plurality oftemplate indicators comprises: a first template indicator associatedwith a first video overlay template, the first video overlay templatecomprising a first set of fields corresponding to discrete portions ofthe dynamic information associated with the event; and a second templateindicator associated with a second video overlay template, the secondvideo overlay template comprising a second set of fields correspondingto discrete portions of the dynamic information associated with theevent, wherein the second set of fields comprises one or more fieldscorresponding to different discrete portions of the dynamic informationassociated with the event than the first set of fields from the firstvideo overlay template; receive, from the first client device, a userselection of the first template indicator from the plurality of templateindicators corresponding to the video overlay template associated withthe event; generate a video enhancement overlay for the live videostream, the video enhancement overlay comprising portions of thereceived dynamic information within the first set of fields of the firstvideo overlay template; and provide, for display to a user associatedwith a second client device, the live video stream and the videoenhancement overlay.
 19. The non-transitory computer readable medium ofclaim 18, further comprising instructions that, when executed by the atleast one processor, further cause the computer system to identify theevent from a plurality of previously created events based on a time oforigination of the live video stream and the location of the firstclient device.
 20. The non-transitory computer readable medium of claim18, further comprising instructions that, when executed by the at leastone processor, further cause the computer system to: receive, from thefirst client device, a request to create the event associated with atime of origination of the live video stream and the location of thefirst client device; and create the event in response to receiving therequest.